C# XAML中可重用、可回收的图标使用什么构造?
我正在设计一个基于WPF的小应用程序,我想在XAML中定义一些常用的矢量图标,这些图标可以在一个视图的多个控件中使用,并且可以通过绑定进行恢复 例如,我想将一个小的十字图标从黑色变为灰色,并在一个禁用的按钮中显示文字(即,使用前景画笔)。图标由(ab)使用Tag属性在按钮上设置 目前,我正在使用基于GeometryBrush的画笔,然后用来填充矩形,但在这里我看不到共享颜色的方法C# XAML中可重用、可回收的图标使用什么构造?,c#,wpf,xaml,C#,Wpf,Xaml,我正在设计一个基于WPF的小应用程序,我想在XAML中定义一些常用的矢量图标,这些图标可以在一个视图的多个控件中使用,并且可以通过绑定进行恢复 例如,我想将一个小的十字图标从黑色变为灰色,并在一个禁用的按钮中显示文字(即,使用前景画笔)。图标由(ab)使用Tag属性在按钮上设置 目前,我正在使用基于GeometryBrush的画笔,然后用来填充矩形,但在这里我看不到共享颜色的方法 有什么方法可以达到这种效果(最好是简捷、简单)?=) 可以在样式中定义路径的几何图形(如果需要,可以单独定义为几何图
有什么方法可以达到这种效果(最好是简捷、简单)?=) 可以在样式中定义路径的几何图形(如果需要,可以单独定义为几何图形),并将其作为静态资源重用
<Style x:Key="PathStyle" TargetType="{x:Type Path}">
<Setter Property="Data" Value="M0,0 L100,0 L100,100 L0,100Z" />
</Style>
然后根据需要更改路径的颜色
<Path Style="{StaticResource PathStyle}" Stroke="Green" Fill="Blue" HorizontalAlignment="Left" />
<Path Style="{StaticResource PathStyle}" Stroke="Purple" Fill="Orange" HorizontalAlignment="Right" />
可以在样式中定义路径的几何图形(如果需要,可以单独定义为几何图形),并将其作为静态资源重用
<Style x:Key="PathStyle" TargetType="{x:Type Path}">
<Setter Property="Data" Value="M0,0 L100,0 L100,100 L0,100Z" />
</Style>
然后根据需要更改路径的颜色
<Path Style="{StaticResource PathStyle}" Stroke="Green" Fill="Blue" HorizontalAlignment="Left" />
<Path Style="{StaticResource PathStyle}" Stroke="Purple" Fill="Orange" HorizontalAlignment="Right" />
您可以将几何图形定义为资源,然后在路径中使用该资源,该路径可以执行任何您想要设置填充和笔划颜色的操作
<Geometry x:Key="MagnifyingGlassGeometry">M 64,9C 81.67,9 96,23.3 96,41C 96,58.67 81.67,73 64,73C 46.3,73 32,58.67 32,41C 32,23.3 46.3,9 64,9 Z M 39,66L 6.5,98.5</Geometry>
<Path Data="{StaticResource MagnifyingGlassGeometry}" Fill="{DynamicResource MyBrush}" Stroke="{Binding DataBrush}"/>
m64,9c81.67,996,23.396,41c96,58.6781.67,7364,73c46.3,7332,58.6732,41c32,23.346.3,964,9zm39,66l6.5,98.5
您可以将几何图形定义为资源,然后在路径中使用该资源,该路径可以执行任何您想要设置填充和笔划颜色的操作
<Geometry x:Key="MagnifyingGlassGeometry">M 64,9C 81.67,9 96,23.3 96,41C 96,58.67 81.67,73 64,73C 46.3,73 32,58.67 32,41C 32,23.3 46.3,9 64,9 Z M 39,66L 6.5,98.5</Geometry>
<Path Data="{StaticResource MagnifyingGlassGeometry}" Fill="{DynamicResource MyBrush}" Stroke="{Binding DataBrush}"/>
m64,9c81.67,996,23.396,41c96,58.6781.67,7364,73c46.3,7332,58.6732,41c32,23.346.3,964,9zm39,66l6.5,98.5
除了其他答案之外,值得注意的是,类似于Fill=“Blue”
的内容是类似以下内容的缩写:
...
<Path.Fill>
<SolidColorBrush>
<SolidColorBrush.Color>
<Color>Red</Color>
</SolidColorBrush.Color>
</SolidColorBrush>
</Path.Fill>
。。。
红色
因此,您也可以使用类似的资源:
<Page.Resources>
<Color x:Key="FillColor">Red</Color>
<SolidColorBrush x:Key="FillBrush" Color="{StaticResource FillColor}" />
</Page.Resources>
<Path Fill="{StaticResource FillBrush}" ..... />
红色
您可以在任意数量的画笔中重复使用颜色资源,然后所有应用程序的颜色都放在一个地方,并且可以轻松更改。除了其他答案之外,值得注意的是,类似于
Fill=“Blue”
的内容是类似以下内容的缩写:
...
<Path.Fill>
<SolidColorBrush>
<SolidColorBrush.Color>
<Color>Red</Color>
</SolidColorBrush.Color>
</SolidColorBrush>
</Path.Fill>
。。。
红色
因此,您也可以使用类似的资源:
<Page.Resources>
<Color x:Key="FillColor">Red</Color>
<SolidColorBrush x:Key="FillBrush" Color="{StaticResource FillColor}" />
</Page.Resources>
<Path Fill="{StaticResource FillBrush}" ..... />
红色
您可以在任意多个画笔中重复使用颜色资源,然后将应用程序的所有颜色放在一个位置,并可以轻松更改。我认为OP希望能够将颜色作为资源共享。。。不确定这是否回答了他的问题。谢谢!这对于重用图标应该有用。我已经知道如何重用颜色,Dan,但是谢谢=)我认为OP希望能够将颜色作为资源共享。。。不确定这是否回答了他的问题。谢谢!这对于重用图标应该有用。我已经知道如何重复使用颜色,丹,但谢谢=)