Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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# XAML中可重用、可回收的图标使用什么构造?_C#_Wpf_Xaml - Fatal编程技术网

C# XAML中可重用、可回收的图标使用什么构造?

C# XAML中可重用、可回收的图标使用什么构造?,c#,wpf,xaml,C#,Wpf,Xaml,我正在设计一个基于WPF的小应用程序,我想在XAML中定义一些常用的矢量图标,这些图标可以在一个视图的多个控件中使用,并且可以通过绑定进行恢复 例如,我想将一个小的十字图标从黑色变为灰色,并在一个禁用的按钮中显示文字(即,使用前景画笔)。图标由(ab)使用Tag属性在按钮上设置 目前,我正在使用基于GeometryBrush的画笔,然后用来填充矩形,但在这里我看不到共享颜色的方法 有什么方法可以达到这种效果(最好是简捷、简单)?=) 可以在样式中定义路径的几何图形(如果需要,可以单独定义为几何图

我正在设计一个基于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希望能够将颜色作为资源共享。。。不确定这是否回答了他的问题。谢谢!这对于重用图标应该有用。我已经知道如何重复使用颜色,丹,但谢谢=)