如何编写C#和XAML
问题描述:
我已经写了静态动画动态DoubleAnimationUsingKeyFrames与DoubleAnimationUsingKeyFrames
:如何编写C#和XAML
<Storyboard x:Name="MyCount" Completed="MyCount_Completed">
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetName="MyProgressBar" Storyboard.TargetProperty="(RangeBase.Value)">
<DiscreteDoubleKeyFrame KeyTime="0:0:0" Value="100"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:1" Value="90"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:2" Value="80"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:3" Value="70"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:4" Value="60"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:5" Value="50"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:6" Value="40"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:7" Value="30"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:8" Value="20"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:9" Value="10"/>
<DiscreteDoubleKeyFrame KeyTime="0:0:10" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
现在我喜欢做这个代码(价值和时间部分),动态与C#。 我该怎么做?
答
<Storyboard x:Name="MyCount" Completed="MyCount_Completed">
<DoubleAnimationUsingKeyFrames EnableDependentAnimation="True" Storyboard.TargetName="MyProgressBar" Storyboard.TargetProperty="(RangeBase.Value)">
<DiscreteDoubleKeyFrame KeyTime="{Binding MyStoryboardTimeKeyframeA}" Value="{Binding MyStoryboardValueKeyframeA}"/>
</DoubleAnimationUsingKeyFrames>
在您的视图模型或任何数据上下文类是:
public class MyViewModel : INotifyPropertyChanged
{
private double _myStoryboardValueKeyframeA;
public double MyStoryboardValueKeyframeA
{
get
{
return _myStoryboardValueKeyframeA;
}
set
{
_myStoryboardValueKeyframeA = value;
OnPropertyChanged("MyStoryboardValueKeyframeA");
}
}
private TimeSpan _myStoryboardTimeKeyframeA;
public TimeSpan MyStoryboardTimeKeyframeA
{
get
{
return _myStoryboardTimeKeyframeA;
}
set
{
_myStoryboardTimeKeyframeA = value;
OnPropertyChanged("MyStoryboardTimeKeyframeA");
}
}
protected void OnPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
handler(this, e);
}
public void OnPropertyChanged(string propertyName)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
}
如果是UWP你也可以使用“X:绑定”,而不是绑定这是强类型的,有Intellisense据说具有更好的性能。 –