Я использую тему Mahapps Metro в своем проекте. Я хочу создать TabControl
, где будет TabItem
. Тема Mahapps обеспечивает изменение цвета текста TabItem при выборе TabItem
и т. Д. Я хочу привязать этот цвет переднего плана к моему изображению. У меня есть решение этой проблемы, но я думаю, что это неверно.Связывание текущего переднего плана с Rectangle.Fill свойство
«Bad» Код (но он работает):
<TabItem>
<TabItem.HeaderTemplate>
<DataTemplate>
<Grid Margin="0,5,0,0">
<TextBlock x:Name="myTextBlock" />
<Rectangle Width="28.947" Height="25" Fill="{Binding ElementName=myTextBlock, Path=Foreground}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{StaticResource appbar_image_gallery}" />
</Rectangle.OpacityMask>
</Rectangle>
</Grid>
</DataTemplate>
</TabItem.HeaderTemplate>
</TabItem>
почему вы думаете, что это плохо? Я понимаю, что вам нужна форма (например, ваше прозрачное изображение), но заполненная «Foreground» в «TextBlock». То, что вы делаете, - это правильный подход, когда речь идет о формировании сложной формы, определенной некоторым образом, использование «OpacityMask» - единственный способ пойти (если вы не можете преобразовать изображение в некоторый SVG, а затем в данные геометрии XAML - таким образом намного сложнее). –