防止XAML中的重复代码

时间:2015-01-30 14:19:23

标签: c# wpf xaml

我在UniformGrid中使用了很多Rectangle控件。它们包含着 XAML代码的所有相同部分,用于处理通过MultiBinding设置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>

1 个答案:

答案 0 :(得分:3)

您可以定义样式:

<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}"/>