[英]Storyboard accessing property in controltemplate
我在訪問控件模板內的屬性時遇到以下問題。 我有以下控制模板:
<Button BorderBrush="Transparent" BorderThickness="0" Command="{Binding PopUpOpenCommand}" CommandParameter="{Binding}" Name="OpenPopUp">
<Button.Template>
<ControlTemplate>
<Path x:Name="CountryUser" Stretch="Fill" StrokeThickness="{StaticResource StrokeUserControl}" StrokeLineJoin="Round" Stroke="{Binding CountryView.CountryColor}" Data="{Binding CountryView.MapData}" Fill="{StaticResource CountryBackground}"/>
</ControlTemplate>
</Button.Template>
</Button>
我想讓以下情節提要板更改controltemplate中的元素。
<Storyboard x:Name="storyboard1">
<ColorAnimation Storyboard.TargetName="CountryUser" Storyboard.TargetProperty="Stroke" To="Blue"/>
</Storyboard>
如何在XAML中做到這一點?
從后面的代碼中,我發現Storyboards找不到ControlTemplate元素 。 我可以毫無問題地找到我的MVVM結構中的元素。 但似乎答案不適用於Windows Phone? 因為我不能以兩個輸入開始故事板?
另一個想法
我在模板內設置了情節提要。 但是我有一個問題,我無法通過我的MVVM結構訪問資源。 這是代碼:
<Button BorderBrush="Transparent" BorderThickness="0" Command="{Binding PopUpOpenCommand}" CommandParameter="{Binding}" Name="OpenPopUp">
<Button.Template>
<ControlTemplate>
<Path x:Name="CountryUser" Stretch="Fill" StrokeThickness="{StaticResource StrokeUserControl}" StrokeLineJoin="Round" Stroke="{Binding CountryView.CountryColor}" Data="{Binding CountryView.MapData}" Fill="{StaticResource CountryBackground}">
<Storyboard x:Name="storyboard1">
<ColorAnimation Storyboard.TargetName="CountryUser" Storyboard.TargetProperty="Stroke" To="Blue"/>
</Storyboard>
</Path>
</ControlTemplate>
</Button.Template>
</Button>
但是我如何訪問情節提要。 我無法使用Template.Find,因為Windows Phone上不存在它?
<Button x:Name="Button1" BorderThickness="0" BorderBrush="Transparent">
<Button.Template>
<ControlTemplate x:Name="Control">
<Path x:Name="CountryUser" Style="{StaticResource style_ColorButton}" Data="{Binding UserView.buttonData}" Fill="{StaticResource ButtonBackground}">
<Path.Resources>
<Storyboard x:Name="StoryBoard1">
<ColorAnimation Storyboard.TargetName="User" Storyboard.TargetProperty="(Stroke).(SolidColorBrush.Color)" To="Blue" Duration="0"/>
</Storyboard>
</Path.Resources>
</Path>
</ControlTemplate>
</Button.Template>
和激活
foreach (UIElement x in ElementsAtPoint)
{
f = x as FrameworkElement;
if (f is Path)
{
try {
h = f as Path;
Storyboard sb = h.Resources["StoryBoard1"] as Storyboard;
sb.Begin();
}
catch
{
}
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.