Я хочу, чтобы применить Storyboard
к моему Rectangle
Fill
как это:Как применять раскадровки в стиле
<Rectangle Name="MyRectangle"
Width="100"
Height="100">
<Rectangle.Fill>
<SolidColorBrush x:Name="MySolidColorBrush" Color="Blue" />
</Rectangle.Fill>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.MouseEnter">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="MySolidColorBrush"
Storyboard.TargetProperty="Color"
From="Blue" To="Red" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
Но я хочу, чтобы вставить Storyboard
в Style
, я попытался это:
<Style xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
TargetType="{x:Type Rectangle}">
<Style.Triggers>
<EventTrigger RoutedEvent="Shape.Loaded">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="MySolidColorBrush"
Storyboard.TargetProperty="Color"
From="Blue" To="Red" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
<Setter Property="Shape.Fill" Value="Blue" x:Name="MySolidColorBrush"/>
</Style>
С использованием этого кода:
var rect = new Rectangle();
using (FileStream stream = new FileStream("myStyle.xaml", FileMode.Open))
rect.Style = XamlReader.Load(stream) as Style;
Но это не работает и выдает исключение. Как мне изменить свой стиль?
вы Обязаны ли использовать XamlReader и все эти вещи, чтобы сделать простой стиль? Я не уверен, но я думаю, что способ создания стиля немного необычен. – HichemSeeSharp
@HichemC Я хочу иметь возможность установить стиль с использованием внешнего ресурса, т. Е. Я хочу, чтобы третья сторона могла выбрать стиль, есть ли у вас какие-то альтернативы? – Nick
вы можете использовать проект библиотеки классов, добавьте туда словари ressource, а затем добавьте dll в свой текущий проект, чтобы вы могли использовать эти ресурсы через тег –
HichemSeeSharp