UWPでスクロールビューアの水平オフセットをアニメートしようとしていますが、アタッチされたプロパティがアニメーションターゲットによって識別されていません。ここUWPでスクロールビューワのアニメーションを添付する依存関係のプロパティ
<Grid x:Name="maingrid" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.Resources>
<Storyboard x:Key="animation" x:Name="animation">
<DoubleAnimation Storyboard.TargetName="scrolviewer"
Storyboard.TargetProperty="(local:ScrollviewerBehaviour.Horizontalofset)"
Duration="0:0:1" From="0" To="80"/>
</Storyboard>
</Grid.Resources>
<Button Width="100" Height="50" Click="Button_Click_1"/>
<ScrollViewer x:Name="scrolviewer" local:ScrollviewerBehaviour.Horizontalofset="0" Width="200" Height="100" HorizontalScrollBarVisibility="Visible">
<TextBlock Text="aaaaaaaaaaaaaaaaaaaaaaaaa" FontSize="20"/>
</ScrollViewer>
</Grid>
は、C#のコード
public class ScrollviewerBehaviour
{
public static readonly DependencyProperty Horizontalofsetproperty =
DependencyProperty.RegisterAttached("Horizontalofset",
typeof(double),
typeof(ScrollviewerBehaviour),
new PropertyMetadata(0,new PropertyChangedCallback(OnHorizontalofsetchanged)));
public static void SetHorizontalofset(ScrollViewer element, double value)
{
element.SetValue(Horizontalofsetproperty, value);
}
public static double GetHorizontalofset(ScrollViewer element)
{
return (double)element.GetValue(Horizontalofsetproperty);
}
public static void OnHorizontalofsetchanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
var scrollviewer = (sender as ScrollViewer);
scrollviewer.ChangeView((double)e.NewValue, scrollviewer.VerticalOffset, scrollviewer.ZoomFactor);
}
}
である私は、あなたが原因でWindowsランタイムXAML実装の既存の制限のためのカスタム添付プロパティをアニメーション化することはできませんanyting
あなたは私のソリューションで問題を解決しましたか? –