Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将当前前景绑定到矩形。填充属性_C#_Wpf_Xaml_Mahapps.metro - Fatal编程技术网

C# 将当前前景绑定到矩形。填充属性

C# 将当前前景绑定到矩形。填充属性,c#,wpf,xaml,mahapps.metro,C#,Wpf,Xaml,Mahapps.metro,我在我的项目中使用Mahapps Metro主题。我想创建TabControl,其中TabItem将是图像。Mahapps主题在选择TabItem等时提供更改TabItem文本的颜色。我想将此前景色绑定到我的图像。 我有这个问题的解决办法,但我认为它不正确 “错误”代码(但正在运行): 如果不想绑定到内部文本块,可以使用模板绑定 <TabItem.HeaderTemplate> <DataTemplate> <Grid Margin="0 5

我在我的项目中使用Mahapps Metro主题。我想创建
TabControl
,其中
TabItem
将是图像。Mahapps主题在选择
TabItem
等时提供更改TabItem文本的颜色。我想将此前景色绑定到我的图像。 我有这个问题的解决办法,但我认为它不正确

“错误”代码(但正在运行):


如果不想绑定到内部
文本块
,可以使用
模板绑定

<TabItem.HeaderTemplate>
    <DataTemplate>
        <Grid Margin="0 5 0 0">
            <TextBlock Text="{Binding}" />
            <Rectangle Width="28.947"
                        Height="25"
                        Fill="{TemplateBinding TextElement.Foreground}">
                <Rectangle.OpacityMask>
                    <VisualBrush Stretch="Fill" Visual="{DynamicResource appbar_image_gallery}" />
                </Rectangle.OpacityMask>
            </Rectangle>
        </Grid>
    </DataTemplate>
</TabItem.HeaderTemplate>

你为什么认为它不好?我知道您想要一个形状(像您的透明图像),但要填充
文本块的
前景
。您所做的是正确的方法,当涉及到塑造由某个图像定义的复杂形状时,使用
OpacityMask
是唯一的方法(除非您可以将图像转换为某种SVG,然后转换为XAML几何体数据-这种方法要复杂得多)。
<TabItem.HeaderTemplate>
    <DataTemplate>
        <Grid Margin="0 5 0 0">
            <TextBlock Text="{Binding}" />
            <Rectangle Width="28.947"
                        Height="25"
                        Fill="{TemplateBinding TextElement.Foreground}">
                <Rectangle.OpacityMask>
                    <VisualBrush Stretch="Fill" Visual="{DynamicResource appbar_image_gallery}" />
                </Rectangle.OpacityMask>
            </Rectangle>
        </Grid>
    </DataTemplate>
</TabItem.HeaderTemplate>