C# 带OpacityMask的WPF数据触发器

C# 带OpacityMask的WPF数据触发器,c#,wpf,mahapps.metro,visualbrush,opacitymask,C#,Wpf,Mahapps.metro,Visualbrush,Opacitymask,我正在使用Mahapps.Metro,希望根据属性更改图标 只设置矩形的BackgroundcolorFill,一切正常。设置OpacityMask后,整个矩形将保持空白 知道我做错了什么吗?过了很长时间,我找到了一个可行的解决方案: 第一个问题是缺少使用的Ressource Blackrush 在Icons.xaml中 而这个方法的诀窍是替换整个矩形。我接受了这份工作 <ContentControl> <ContentControl.Style

我正在使用Mahapps.Metro,希望根据属性更改图标

只设置矩形的BackgroundcolorFill,一切正常。设置OpacityMask后,整个矩形将保持空白


知道我做错了什么吗?

过了很长时间,我找到了一个可行的解决方案:

第一个问题是缺少使用的Ressource Blackrush 在Icons.xaml中

而这个方法的诀窍是替换整个矩形。我接受了这份工作

<ContentControl>
                <ContentControl.Style>
                    <Style TargetType="{x:Type ContentControl}">
                    <Style.Triggers>
                            <DataTrigger Binding="{Binding Path=IsOnline}" Value="True">
                            <Setter Property="Content" >
                                <Setter.Value>
                                    <Rectangle Fill="Green" Width="20" Height="20">
                                        <Rectangle.Resources>
                                            <SolidColorBrush x:Key="BlackBrush" Color="Black" />
                                        </Rectangle.Resources>
                                        <Rectangle.OpacityMask>
                                            <VisualBrush Visual="{StaticResource appbar_disconnect}" Stretch="Fill" />
                                        </Rectangle.OpacityMask>
                                    </Rectangle>
                                </Setter.Value>
                            </Setter>
                        </DataTrigger>
                            <DataTrigger Binding="{Binding Path=IsOnline}" Value="False">
                            <Setter Property="Content" >
                                <Setter.Value>
                                    <Rectangle Fill="Red" Width="20" Height="20">
                                        <Rectangle.Resources>
                                            <SolidColorBrush x:Key="BlackBrush" Color="Black" />
                                        </Rectangle.Resources>
                                        <Rectangle.OpacityMask>
                                            <VisualBrush Visual="{StaticResource appbar_connect}" Stretch="Fill" />
                                        </Rectangle.OpacityMask>
                                    </Rectangle>
                                </Setter.Value>
                            </Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ContentControl.Style>
            </ContentControl>