Adding text scale animation to header content in z-order scrolling sample, and cleanup of ignored files
This commit is contained in:
Родитель
5336eb7fbf
Коммит
3773d28027
|
@ -1,4 +1,10 @@
|
|||
.vs/
|
||||
bin/
|
||||
obj/
|
||||
*.csproj.user
|
||||
# General Visual Studio files to ignore
|
||||
.vs/
|
||||
[Bb]in/
|
||||
[Oo]bj/
|
||||
[Dd]ebug/
|
||||
[Rr]elease/
|
||||
x64/
|
||||
*.csproj.user
|
||||
*.sdf
|
||||
*.opendb
|
||||
|
|
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
|
@ -47,21 +47,28 @@
|
|||
<TextBlock Text="Career" Style="{StaticResource DividingText}"></TextBlock>
|
||||
</Border>
|
||||
<TextBlock Style="{StaticResource BasicText}" xml:space="default" Text=
|
||||
"Mr. Satya Nadella is the Chief Executive Officer of Microsoft Corporation since February 4, 2014. Nadella
|
||||
joined Microsoft in 1992. Prior to becoming CEO, Nadella was the president of the Servers and Tools
|
||||
Business (STB) at Microsoft. Satya Nadella was accountable for the overall business and technical vision,
|
||||
strategy, operations, engineering and marketing for Microsoft's $15 billion business. STB is responsible for
|
||||
Microsoft infrastructure software, developer tools and cloud platform, including products such as Windows Server,
|
||||
SQL Server, Visual Studio, System Center and the Windows Azure Platform.
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce iaculis eget tellus sodales feugiat. Proin risus nunc,
|
||||
facilisis ut tincidunt a, tempus at felis. In nec congue justo, vel interdum libero. Cum sociis natoque penatibus et
|
||||
magnis dis parturient montes, nascetur ridiculus mus. In et sapien aliquet, rutrum ex congue, accumsan augue. Nulla
|
||||
nec eleifend quam. Pellentesque et facilisis libero. Duis tristique, augue in consectetur imperdiet, turpis odio
|
||||
consequat orci, malesuada semper sem lectus tristique enim. Nunc porta varius nibh, in congue mauris sodales at.
|
||||
Phasellus tristique eleifend magna auctor euismod. Integer accumsan eu lorem a rhoncus.
|
||||



|
||||
Prior to joining the Online Services Division, he led Microsoft Business Solutions (MBS), which develops and
|
||||
markets the Microsoft Dynamics line of ERP and CRM products. Prior to that, he spent several years leading engineering
|
||||
efforts in Microsoft's Server group. Before joining Microsoft, Nadella was a member of the technology staff at
|
||||
Sun Microsystems Inc.
|
||||
Nulla in porttitor ex. Nam vestibulum fermentum gravida. Donec vehicula ligula vel hendrerit finibus. Sed pulvinar
|
||||
sagittis metus, eu condimentum nunc rutrum tristique. Vestibulum sit amet ultricies augue. Mauris dictum porta dignissim. In
|
||||
non dignissim sem. Mauris eu eleifend eros. Nunc ac ante et elit sollicitudin egestas non vel ligula. In eu enim
|
||||
purus. Praesent feugiat nulla enim, ut congue metus fermentum ac. Mauris vehicula quam sem. Suspendisse lacus purus,
|
||||
ultrices et dapibus ac, interdum mollis nisl. Sed fermentum, purus a gravida luctus, nibh orci viverra diam, non posuere
|
||||
risus velit ut arcu. Aliquam erat volutpat. Donec rutrum turpis non sem fermentum euismod.
|
||||



|
||||
A native of Hyderabad (India), Nadella has a Bachelor's degree in Electrical Engineering from Mangalore University,
|
||||
a Master's degree in Computer Science from the University of Wisconsin and an M.B.A. from the University of Chicago.
|
||||
He and his wife have three children and reside in Washington state.">
|
||||
Vestibulum laoreet justo placerat erat placerat, ut dictum ante eleifend. Curabitur pulvinar libero eros, a mattis nisl
|
||||
finibus accumsan. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Fusce a
|
||||
vestibulum ante. Sed nec dui et urna blandit venenatis quis sit amet sapien. Integer tristique nec metus vitae viverra.
|
||||
Mauris egestas augue a felis pretium aliquet. Donec ultricies urna non erat mattis, sit amet porta erat eleifend. Nullam in
|
||||
consequat enim. Integer ipsum nunc, tempor sit amet tellus fermentum, tristique bibendum ipsum. Integer vitae venenatis
|
||||
justo. Donec at nulla mollis, mollis sem nec, sagittis elit. Nulla in dapibus nisi, feugiat convallis justo. Morbi elit
|
||||
libero, rutrum vel venenatis in, pulvinar sed lectus. Ut sem lorem, congue sit amet erat varius, interdum elementum arcu.
|
||||
Curabitur ut neque sit amet lectus lacinia tempor faucibus gravida lorem. ">
|
||||
|
||||
</TextBlock>
|
||||
|
||||
|
@ -71,11 +78,11 @@ He and his wife have three children and reside in Washington state.">
|
|||
</Border>
|
||||
|
||||
<TextBlock Style="{StaticResource BasicText}" Text=
|
||||
"Satya Narayana Nadella (/ˈnədɛlæ/; born August 19, 1967) is an Indian-American business executive. He is the
|
||||
current chief executive officer (CEO) of Microsoft.[7][8] He was appointed as CEO on 4 February 2014, succeeding
|
||||
Steve Ballmer. Before becoming CEO of Microsoft, he was Executive Vice President of Microsoft's Cloud and
|
||||
Enterprise group, responsible for building and running the company's Computing Platforms, Developer Tools and
|
||||
Cloud Computing Services."
|
||||
"Pellentesque dignissim ac lorem non viverra. Curabitur placerat sapien sem, sit amet dictum enim malesuada sit amet.
|
||||
Curabitur tristique sit amet quam eget vehicula. Sed facilisis leo turpis, ut tincidunt mi mattis quis. In eget suscipit
|
||||
erat. Vivamus aliquet rhoncus posuere. Cras bibendum lobortis nulla vel dignissim. Vivamus congue lacus id vestibulum porttitor.
|
||||
Pellentesque sit amet volutpat metus. Nulla vitae quam eget nibh rutrum viverra. Vivamus mollis, mauris sed tempor commodo,
|
||||
massa ex accumsan lectus, sit amet ultrices leo velit sed leo. Nunc in enim enim."
|
||||
></TextBlock>
|
||||
|
||||
|
||||
|
@ -84,31 +91,44 @@ Cloud Computing Services."
|
|||
</TextBlock>
|
||||
</Border>
|
||||
<TextBlock Style="{StaticResource BasicText}" Text=
|
||||
"Nadella[9][10][11] was born into a Telugu speaking family[11] in Hyderabad, Andhra Pradesh (now Telangana),
|
||||
India. His father, Bukkapuram Nadella Yugandher, was a civil servant of the Indian Administrative Service.[12][13]
|
||||
Nadella attended the Hyderabad Public School, Begumpet[14] before attaining a bachelor's degree in electrical engineering[15]
|
||||
from the Manipal Institute of Technology in 1988 (then affiliated with Mangalore University), Manipal, Karnataka.[16][17][18][19][20]
|
||||
"Phasellus eu tincidunt est, et blandit lectus. Integer ultricies faucibus hendrerit. Integer ultricies efficitur sem. In
|
||||
ut molestie magna. Aliquam erat volutpat. Morbi mauris dui, cursus maximus libero a, egestas dignissim mi. Aliquam volutpat
|
||||
neque non eros interdum scelerisque. Integer ut efficitur quam. Nullam vitae purus a risus luctus vulputate. Curabitur a
|
||||
turpis metus. Vestibulum lectus dui, aliquet ac dolor lobortis, commodo cursus nulla. Donec dui quam, fringilla ut iaculis
|
||||
nec, dictum a odio. Duis justo elit, vehicula et ex ac, tincidunt placerat ligula. Integer volutpat ultricies augue, euismod
|
||||
volutpat dolor finibus ut. Duis tortor nisl, molestie non semper sed, consequat id urna. Proin tincidunt vestibulum lacus, ut
|
||||
vulputate lorem.
|
||||



|
||||
Nadella subsequently traveled to the U.S. to study for an M.S. degree in Computer Science at the University of
|
||||
Wisconsin–Milwaukee,[21] receiving his degree in 1990.[22] Later he received an MBA from the University of Chicago
|
||||
Booth School of Business.[23][24]
|
||||
Pellentesque convallis auctor feugiat. Nulla sed massa tellus. Donec porta quam massa, vel pretium arcu accumsan viverra.
|
||||
Quisque dignissim commodo mattis. Nullam eu dictum sem. Aenean faucibus ante eget nisl laoreet, a rhoncus ligula viverra.
|
||||
Morbi pulvinar quam ex, sed tincidunt nulla posuere at. Vestibulum sit amet urna vel justo lacinia finibus. Ut laoreet aliquam
|
||||
posuere. Etiam tortor dui, interdum vel magna ut, finibus mattis ante. Phasellus sem nunc, vestibulum quis lacus vitae, lacinia
|
||||
egestas urna. Aenean et eros vitae ligula fermentum ornare. Mauris imperdiet ipsum quis sapien cursus, nec imperdiet leo aliquam.
|
||||
Nunc non sapien id augue feugiat dapibus a sit amet enim. Curabitur ante orci, feugiat quis nulla et, dignissim dapibus tellus.
|
||||



|
||||
Nadella said he "always wanted to build things".[25] He knew that computer science was what he wanted to
|
||||
pursue,[26] but that emphasis was not available at Manipal University. "And so it [electrical engineering] was
|
||||
a great way for me to go discover what turned out to become a passion," he says.[27]"
|
||||
Pellentesque non tempor ipsum. Nunc ut tristique ex, eu iaculis tellus. Integer tincidunt commodo turpis sed pellentesque.
|
||||
Aenean rutrum massa tortor, in mollis lectus placerat sed. Vivamus enim libero, rutrum in libero nec, ultricies volutpat risus.
|
||||
Mauris quis massa nec justo fermentum dictum. Donec laoreet ante eget velit imperdiet molestie. Nullam tellus ligula, hendrerit
|
||||
vel commodo at, scelerisque ac neque. Aliquam egestas sed elit vel lobortis.
|
||||



|
||||
Morbi pretium purus ac dui malesuada iaculis. Maecenas consectetur nulla in odio vulputate, vel dapibus diam lobortis. Morbi
|
||||
laoreet ligula sapien, bibendum scelerisque purus euismod sed. Vestibulum et varius risus, eu pulvinar neque. Pellentesque
|
||||
consequat, ex a molestie congue, elit leo consectetur lectus, sed tempus enim dolor eget nunc. Pellentesque mollis ligula non
|
||||
ornare porttitor. Nam fermentum ante quis ipsum porta, nec auctor quam imperdiet. "
|
||||
>
|
||||
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
<Grid Name="MainGrid" VerticalAlignment="Top">
|
||||
<Grid Name="BackGrid"></Grid>
|
||||
<Image Name="ParallaxingImage" Source="assets/RollingWaves.jpg" IsHitTestVisible="False"></Image>
|
||||
<StackPanel Name="ProfileContent" HorizontalAlignment="Center" VerticalAlignment="Top">
|
||||
<TextBlock Style="{StaticResource ProfileName}">Satya Nadella</TextBlock>
|
||||
<TextBlock Style="{StaticResource ProfileTitle}">Chief Executive Officer</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
<Grid Name="MainGrid" VerticalAlignment="Top">
|
||||
<Grid Name="BackGrid"></Grid>
|
||||
<Image Name="ParallaxingImage" Source="assets/RollingWaves.jpg" IsHitTestVisible="False"></Image>
|
||||
<StackPanel Name="ProfileContent" HorizontalAlignment="Center" VerticalAlignment="Center" IsHitTestVisible="False">
|
||||
<TextBlock Style="{StaticResource ProfileName}" IsHitTestVisible="False">Satya Nadella</TextBlock>
|
||||
<TextBlock Style="{StaticResource ProfileTitle}" IsHitTestVisible="False">Chief Executive Officer</TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Page>
|
||||
|
|
|
@ -35,35 +35,6 @@ namespace Z_ORderScrolling
|
|||
this.Loaded += MainPage_Loaded;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Method used to walk throughthe tree doing a search to find a child element of a given type.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">The type of the element to retrieve.</typeparam>
|
||||
/// <param name="rootElement">The root to start the search at.</param>
|
||||
/// <returns></returns>
|
||||
private static T GetChildElement<T>(DependencyObject rootElement)
|
||||
{
|
||||
int childCount = VisualTreeHelper.GetChildrenCount(rootElement);
|
||||
for (int i = 0; i < childCount; i++)
|
||||
{
|
||||
DependencyObject current = VisualTreeHelper.GetChild(rootElement, i);
|
||||
if ((current.GetType()).Equals(typeof(T)))
|
||||
{
|
||||
return (T)Convert.ChangeType(current, typeof(T));
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < childCount; i++)
|
||||
{
|
||||
DependencyObject current = VisualTreeHelper.GetChild(rootElement, i);
|
||||
T temp = GetChildElement<T>(current);
|
||||
if (temp != null)
|
||||
return temp;
|
||||
}
|
||||
|
||||
return default(T);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// MainPage_Loaded is used for all of our initialization to keep the UI thread mostly free.
|
||||
/// </summary>
|
||||
|
@ -83,8 +54,6 @@ namespace Z_ORderScrolling
|
|||
InitializeFrontVisual(scrollProperties, maskedBrush);
|
||||
InitializeBehindVisual(scrollProperties, maskedBrush);
|
||||
|
||||
_scrollBar = GetChildElement<ScrollBar>(Scroller);
|
||||
|
||||
UpdateSizes();
|
||||
}
|
||||
|
||||
|
@ -96,19 +65,20 @@ namespace Z_ORderScrolling
|
|||
private void InitializeBackgroundImageVisual(CompositionPropertySet scrollProperties)
|
||||
{
|
||||
//
|
||||
// Get the visual for the background image, and let it parallax up until the ParallaxPoint.
|
||||
// ParallaxPoint is later defined as the amount of the image to leave showing.
|
||||
// Get the visual for the background image, and let it parallax up until the BackgroundPeekSize.
|
||||
// BackgroundPeekSize is later defined as the amount of the image to leave showing.
|
||||
//
|
||||
_backgroundVisual = ElementCompositionPreview.GetElementVisual(ParallaxingImage);
|
||||
|
||||
//
|
||||
// If the scrolling is positive (i.e., bouncing), don't translate at all. Then check to see if
|
||||
// we have parallaxed as far as we should go. If we haven't, keep parallaxing otherwise use
|
||||
// the scrolling translation to keep the background stuck with the background peeking out.
|
||||
//
|
||||
_backgroundTranslationAnimation = _compositor.CreateExpressionAnimation(
|
||||
"BaseOffset + Vector3(" +
|
||||
"0," +
|
||||
|
||||
"scrollingProperties.Translation.Y > 0 ? 0 :" +
|
||||
"(ParallaxRatio * -scrollingProperties.Translation.Y) < ParallaxPoint ? " +
|
||||
"(ParallaxRatio * scrollingProperties.Translation.Y) : (-ParallaxPoint)," +
|
||||
|
||||
"0)");
|
||||
"BaseOffset + (scrollingProperties.Translation.Y > 0 ? 0 : " +
|
||||
"( (1-ParallaxRatio) * -scrollingProperties.Translation.Y) < BackgroundPeekSize ? " +
|
||||
"(ParallaxRatio * -scrollingProperties.Translation.Y) : -BackgroundPeekSize-scrollingProperties.Translation.Y)");
|
||||
_backgroundTranslationAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
|
||||
_backgroundTranslationAnimation.SetScalarParameter("ParallaxRatio", _parallaxRatio);
|
||||
|
||||
|
@ -130,16 +100,16 @@ namespace Z_ORderScrolling
|
|||
//
|
||||
_profileContentVisual = ElementCompositionPreview.GetElementVisual(ProfileContent);
|
||||
_profileContentTranslationAnimation = _compositor.CreateExpressionAnimation(
|
||||
"Vector3(Target.Size.X/2, Target.Size.Y/2 + Background.Offset.Y - Background.Size.Y/2, 0) + " +
|
||||
"Lerp(" +
|
||||
"Vector3(0, 0, 0)," +
|
||||
"Vector3(0, 1+ShowRatio/2 * Background.Size.Y ,0)" +
|
||||
"Clamp( (BaseOffset.Y - Background.Offset.Y)/ParallaxPoint,0,1)" +
|
||||
")");
|
||||
_profileContentTranslationAnimation.SetReferenceParameter("Target", _profileContentVisual);
|
||||
"(-scrollingProperties.Translation.Y + Background.Offset.Y + Background.Size.Y/2)/2");
|
||||
_profileContentTranslationAnimation.SetReferenceParameter("Background", _backgroundVisual);
|
||||
_profileContentTranslationAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
|
||||
_profileContentTranslationAnimation.SetScalarParameter("ShowRatio", _backgroundShowRatio);
|
||||
|
||||
_profileContentScaleAnimation = _compositor.CreateExpressionAnimation(
|
||||
"Lerp(1,ShrinkRatio, " +
|
||||
"Clamp( (Background.Offset.Y - Background.Size.Y/2) / (Background.Size.Y - BackgroundPeekSize),0,1))"
|
||||
);
|
||||
_profileContentScaleAnimation.SetScalarParameter("ShrinkRatio", _contentShrinkRatio);
|
||||
_profileContentScaleAnimation.SetReferenceParameter("Background", _backgroundVisual);
|
||||
}
|
||||
|
||||
|
||||
|
@ -159,29 +129,16 @@ namespace Z_ORderScrolling
|
|||
ElementCompositionPreview.SetElementChildVisual(MainGrid, _frontVisual);
|
||||
|
||||
//
|
||||
// "Terms" and explanation of the following expression:
|
||||
// "Terms" in the following expression:
|
||||
//
|
||||
// (CrossoverTranslation + scrollingProperties.Translation.Y)/CrossoverTranslation
|
||||
//
|
||||
// Since scrollingProperties.Translation.Y is negative. This creates a normalized value that goes from
|
||||
// 0 to 1 between no scrolling and the CrossoverTranslation.
|
||||
//
|
||||
// (maxClamp - minClamp)
|
||||
//
|
||||
// This calculates the difference between the two clamps. This will be scaled by the normalized value
|
||||
// above.
|
||||
//
|
||||
// minClamp
|
||||
//
|
||||
// We add the minClamp back to the whole equation in order to create an equation that runs from minClamp
|
||||
// to maxClamp.
|
||||
//
|
||||
_frontPropertiesScalarScaleAnimation = _compositor.CreateExpressionAnimation(
|
||||
"Clamp(" +
|
||||
"(CrossoverTranslation + scrollingProperties.Translation.Y)/CrossoverTranslation * (maxClamp-minClamp) + minclamp," +
|
||||
"minClamp," +
|
||||
"maxClamp" +
|
||||
")");
|
||||
"Lerp(minClamp, maxClamp, Clamp((CrossoverTranslation + scrollingProperties.Translation.Y)/CrossoverTranslation,0,1))"
|
||||
);
|
||||
_frontPropertiesScalarScaleAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
|
||||
_frontPropertiesScalarScaleAnimation.SetScalarParameter("minClamp", _finalScaleAmount);
|
||||
_frontPropertiesScalarScaleAnimation.SetScalarParameter("maxClamp", _initialScaleAmount);
|
||||
|
@ -202,6 +159,11 @@ namespace Z_ORderScrolling
|
|||
_frontVisibilityAnimation =
|
||||
_compositor.CreateExpressionAnimation("-scrollingProperties.Translation.Y <= CrossoverTranslation ? 1 : 0");
|
||||
_frontVisibilityAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
|
||||
|
||||
_frontTranslationAnimation =
|
||||
_compositor.CreateExpressionAnimation("scrollingProperties.Translation.Y > 0 ? BaseOffset : BaseOffset-scrollingProperties.Translation.Y");
|
||||
_frontTranslationAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -244,7 +206,7 @@ namespace Z_ORderScrolling
|
|||
// the visibility swaps between frontVisual and backVisual, they are perfectly aligned.
|
||||
//
|
||||
_behindTranslateAnimation = _compositor.CreateExpressionAnimation(
|
||||
"initialOffset + 1 * (CrossoverTranslation + scrollingProperties.Translation.Y)");
|
||||
"(BaseOffset - scrollingProperties.Translation.Y) + 2 * (CrossoverTranslation + scrollingProperties.Translation.Y)");
|
||||
_behindTranslateAnimation.SetReferenceParameter("scrollingProperties", scrollProperties);
|
||||
}
|
||||
|
||||
|
@ -254,11 +216,11 @@ namespace Z_ORderScrolling
|
|||
//
|
||||
// First, calculate all of the new sizes and distances we will need.
|
||||
//
|
||||
var backgroundImageSize = new Vector2((float)ParallaxingImage.ActualHeight - (float)_scrollBar.ActualWidth, (float)ParallaxingImage.ActualHeight);
|
||||
var backgroundImageSize = new Vector2((float)ParallaxingImage.ActualHeight, (float)ParallaxingImage.ActualHeight);
|
||||
var profileImageSize = new Vector2((float)ParallaxingImage.ActualHeight, (float)ParallaxingImage.ActualHeight) * _initialScaleAmount;
|
||||
var crossOverPoint = profileImageSize.Y * _finalScaleAmount / 2 + _followMargin;
|
||||
var crossoverTranslation = (profileImageSize.Y * _finalScaleAmount / 2 + _followMargin) / (1 - _parallaxRatio);
|
||||
var offset = new Vector3((float)ParallaxingImage.ActualWidth / 2, (float)ParallaxingImage.ActualHeight, 0);
|
||||
var parallaxPoint = backgroundImageSize.Y * _backgroundShowRatio;
|
||||
var backgroundPeekSize = backgroundImageSize.Y * _backgroundShowRatio;
|
||||
|
||||
// Push the text content down to make room for the image overhanging.
|
||||
//
|
||||
|
@ -270,10 +232,12 @@ namespace Z_ORderScrolling
|
|||
_frontVisual.AnchorPoint = new Vector2(.5f, .5f);
|
||||
_frontVisual.Offset = offset;
|
||||
_frontVisual.Size = profileImageSize;
|
||||
_frontPropertiesScalarScaleAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
|
||||
_frontVisibilityAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
|
||||
_frontTranslationAnimation.SetScalarParameter("BaseOffset", offset.Y);
|
||||
_frontPropertiesScalarScaleAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
|
||||
_frontVisibilityAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
|
||||
_frontVisual.Properties.StartAnimation("ScalarScale", _frontPropertiesScalarScaleAnimation);
|
||||
_frontVisual.StartAnimation("Opacity", _frontVisibilityAnimation);
|
||||
_frontVisual.StartAnimation("Offset.Y", _frontTranslationAnimation);
|
||||
|
||||
|
||||
//
|
||||
|
@ -282,9 +246,9 @@ namespace Z_ORderScrolling
|
|||
_backVisual.AnchorPoint = new Vector2(.5f, .5f);
|
||||
_backVisual.Offset = offset;
|
||||
_backVisual.Size = profileImageSize;
|
||||
_behindTranslateAnimation.SetScalarParameter("initialOffset", offset.Y);
|
||||
_behindTranslateAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
|
||||
_behindOpacityAnimation.SetScalarParameter("CrossoverTranslation", crossOverPoint);
|
||||
_behindTranslateAnimation.SetScalarParameter("BaseOffset", offset.Y);
|
||||
_behindTranslateAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
|
||||
_behindOpacityAnimation.SetScalarParameter("CrossoverTranslation", crossoverTranslation);
|
||||
|
||||
_backVisual.StartAnimation("Opacity", _behindOpacityAnimation);
|
||||
_backVisual.StartAnimation("Offset.Y", _behindTranslateAnimation);
|
||||
|
@ -292,12 +256,13 @@ namespace Z_ORderScrolling
|
|||
//
|
||||
// Resolve all property parameters and references on _backgroundVisual
|
||||
//
|
||||
_backgroundTranslationAnimation.SetScalarParameter("ParallaxPoint", parallaxPoint);
|
||||
_backgroundVisual.AnchorPoint = new Vector2(.5f, .5f);
|
||||
_backgroundTranslationAnimation.SetScalarParameter("BackgroundPeekSize", backgroundPeekSize);
|
||||
_backgroundVisual.Size = backgroundImageSize;
|
||||
_backgroundVisual.AnchorPoint = new Vector2(.5f, .5f);
|
||||
_backgroundVisual.CenterPoint = new Vector3(backgroundImageSize / 2, 1);
|
||||
_backgroundTranslationAnimation.SetVector3Parameter("BaseOffset", new Vector3(backgroundImageSize / 2, 0) - new Vector3((float)_scrollBar.ActualWidth,0,0));
|
||||
_backgroundVisual.StartAnimation("Offset", _backgroundTranslationAnimation);
|
||||
_backgroundTranslationAnimation.SetScalarParameter("BaseOffset", backgroundImageSize.Y / 2);
|
||||
_backgroundVisual.Offset = new Vector3(backgroundImageSize / 2, 0);
|
||||
_backgroundVisual.StartAnimation("Offset.Y", _backgroundTranslationAnimation);
|
||||
_backgroundVisual.StartAnimation("Scale.X", _backgroundScaleAnimation);
|
||||
_backgroundVisual.StartAnimation("Scale.Y", _backgroundScaleAnimation);
|
||||
|
||||
|
@ -306,9 +271,12 @@ namespace Z_ORderScrolling
|
|||
//
|
||||
_profileContentVisual.Size = new Vector2((float)ProfileContent.ActualWidth, (float)ProfileContent.ActualHeight);
|
||||
_profileContentVisual.AnchorPoint = new Vector2(0.5f, 0.5f);
|
||||
_profileContentTranslationAnimation.SetScalarParameter("ParallaxPoint", parallaxPoint);
|
||||
_profileContentTranslationAnimation.SetVector3Parameter("BaseOffset", new Vector3(backgroundImageSize / 2, 0));
|
||||
_profileContentVisual.StartAnimation("Offset", _profileContentTranslationAnimation);
|
||||
_profileContentVisual.Offset = new Vector3(0);
|
||||
_profileContentVisual.Offset = new Vector3(_profileContentVisual.Size / 2, 0);
|
||||
_profileContentScaleAnimation.SetScalarParameter("BackgroundPeekSize", backgroundPeekSize);
|
||||
_profileContentVisual.StartAnimation("Offset.Y", _profileContentTranslationAnimation);
|
||||
_profileContentVisual.StartAnimation("Scale.X", _profileContentScaleAnimation);
|
||||
_profileContentVisual.StartAnimation("Scale.Y", _profileContentScaleAnimation);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -362,6 +330,7 @@ namespace Z_ORderScrolling
|
|||
private ExpressionAnimation _behindTranslateAnimation;
|
||||
|
||||
private SpriteVisual _frontVisual;
|
||||
private ExpressionAnimation _frontTranslationAnimation;
|
||||
private ExpressionAnimation _frontPropertiesScalarScaleAnimation;
|
||||
private ExpressionAnimation _frontVisibilityAnimation;
|
||||
|
||||
|
@ -371,14 +340,14 @@ namespace Z_ORderScrolling
|
|||
|
||||
private Visual _profileContentVisual;
|
||||
private ExpressionAnimation _profileContentTranslationAnimation;
|
||||
|
||||
private ScrollBar _scrollBar;
|
||||
private ExpressionAnimation _profileContentScaleAnimation;
|
||||
|
||||
private float _initialScaleAmount = .8f;
|
||||
private float _finalScaleAmount = .4f;
|
||||
private float _followMargin = 50f;
|
||||
private float _backgroundShowRatio = .6f;
|
||||
private float _followMargin = 20f;
|
||||
private float _backgroundShowRatio = .8f;
|
||||
private float _backgroundScaleAmount = .25f;
|
||||
private float _parallaxRatio = .6f;
|
||||
private float _parallaxRatio = .2f;
|
||||
private float _contentShrinkRatio = .7f;
|
||||
}
|
||||
}
|
||||
|
|
Двоичный файл не отображается.
Загрузка…
Ссылка в новой задаче