У меня проблема с серебряным светом. Я потратил два дня на борьбу: шаблон со стилем управляет кнопкой. В конкретной кнопке у меня есть холст с контурами в качестве содержимого. Проблема в том, что я хочу, чтобы цвет заливки контуров привязывался к переднему плану из ContentControl в шаблоне.
Однако Мне не удалось понять, как создать привязку для доступа к Forground. Если бы я, например, использовал TextBlock, он автоматически получил бы цвет переднего плана из Style. Как и ожидалось, текст имеет цвет переднего плана. Причина привязки заключается в том, что анимация управляет передним планом, и я хочу, чтобы она распространялась на цвет заливки пути. Есть идеи?
Шаблон содержит следующее:
<Style x:Key="PathButtonStyle" TargetType="Button">
... Animations and state stuff
<Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBrush}" >
<ContentControl x:Name="ContentContainer"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
Foreground="{TemplateBinding Foreground}" />
</Border>
</Style>
В моем макете у меня есть следующее:
<Button x:Name="Play" Style="{StaticResource PathButtonStyle}" >
<Canvas x:Name="PlayIcon">
<Path Data="F1M191.4839,96.1763L177.9149,106.5173L177.9149,85.9293z"
Fill="{PATH TO CONTENTCONTROLS FOREGROUND}" />
</Canvas>
</Button>
Я очистил код и удалил все, чтобы сделать его более читабельным, но я надеюсь, что вы уловили идею за ним.