Я застрял, пытаясь выяснить способ привязки фоновой кисти элемента управления к ресурсу «Цвет» в пользовательском элементе управления кнопки (создан пользовательский элемент управления и изменен производный класс на кнопку).
Я пытаюсь синхронизировать выбор пользовательского фона для пользовательской кнопки с триггером события выхода из мыши. Поэтому в этом случае я бы хотел, чтобы в поле анимации цвета «To =» был задан цвет фона, равный зеленому.
<!--Inside a Window or Page where the control is being utilized.-->
<Controls:ImageTextButton ImgPath="/Images/AlertImg.png"
ButtText='Hey Bro'
Height="65"
Background="Green"/>
<!--Control Template Inside the Custom Button-->
<Button.Template>
<ControlTemplate>
<Border x:Name="MainBorder" Background="{TemplateBinding Background}" >
.
,
.
<!--Mouse Leave Animation-->
<EventTrigger RoutedEvent="MouseLeave">
<!--Fade to Default Background when the Mouse Leaves the Button-->
<BeginStoryboard>
<Storyboard>
<ColorAnimation To="{Binding ElementName=MainBorder, Path=Background.Color}"
Duration="0:0:.3"
Storyboard.TargetName="MainBorder"
Storyboard.TargetProperty="Background.Color"></ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<Button.Resources>
<!--The Color that the control will change to when the mouse enters the control-->
<Color x:Key="MouseOverColor">#FF348ECD</Color>
<!--I want this bound to MainBorders Background Color/ Controls Background?????? Can't Bind to R,G,B-->
<Color x:Key="RevertColor" R="{Binding ElementName=MainBorder, Path=Background.Color.R}"></Color>
</Button.Resources>
Привязка непосредственно к анимации не представляется возможным, поскольку генерируется исключение.
"InvalidOperationException: Невозможно заморозить это дерево шкалы времени раскадровки для использования в потоках."
Так что моей следующей мыслью будет привязка к цветовому ресурсу внутри пользовательского элемента управления, который вы можете использовать в цветной анимации, но вы не можете привязать значения R, G, B для создания цвета.
Я не знаю, переборщил ли я, но чувствую, что это не должно быть проблемой, так или иначе. Любые идеи будут оценены.
Спасибо