Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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/12.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,我在UniformGrid中使用了很多矩形控件。它们包含 XAML代码的所有相同部分都处理通过多重绑定设置Fill属性(参见下面的示例)。有没有办法防止这种代码重复?减少XAML代码的首选方法是什么 太多了 <Rectangle> <Rectangle.Fill> <MultiBinding Converter="{StaticResource Converter}"> <Binding Path="Fie

我在UniformGrid中使用了很多矩形控件。它们包含 XAML代码的所有相同部分都处理通过多重绑定设置Fill属性(参见下面的示例)。有没有办法防止这种代码重复?减少XAML代码的首选方法是什么

太多了

<Rectangle>
    <Rectangle.Fill>
        <MultiBinding Converter="{StaticResource Converter}">
            <Binding Path="Field"/>
            <Binding>
                <Binding.RelativeSource>
                    <RelativeSource Mode="Self"/>
                </Binding.RelativeSource>
            </Binding>
        </MultiBinding>
    </Rectangle.Fill>
</Rectangle>

您可以定义样式:

<Window.Resources>
   <Style x:Key="RectangleStyle" TargetType="Rectangle">
      <Setter Property="Fill">
         <Setter.Value>
            <MultiBinding Converter="{StaticResource Converter}">
               <Binding Path="Field"/>
               <Binding>
                  <Binding.RelativeSource>
                     <RelativeSource Mode="Self"/>
                  </Binding.RelativeSource>
               </Binding>
           </MultiBinding>
         </Setter.Value>
      </Setter>
   </Style>
</Window.Resources>

然后像这样使用它:

<Rectangle Style="{StaticResource RectangleStyle}"/>


创建一个新的
用户控件
。您可以在app.xaml中添加模板。您可以编写一个样式并将其添加到应用程序资源中,然后重用该样式,或者您可以创建一个具有相同样式的自定义控件并使用它。如果您希望能够在不同的项目中重用该样式或模板,可以将它们放在库中并也可以使用resourcedictionary获取它们