我必须为单个窗口使用1800行XAML定义,并且我希望大幅减少代码量。使用集成文本框创建边框样式
有几个控制定义,经常重复,我想为其中一些编写样式。一个示例是带有集成TextBox的边框定义:
<Border Grid.Column="2" Margin="1,1,5,0" Background="#bbc2ce">
<my:RibbonTextBox HorizontalContentAlignment="Center"
IsReadOnly="True" Background="#FAFAFA"
Text="{Binding Path=someViewModel.Item,Mode=OneWay}"
MinHeight="0" FontSize="12" FontWeight="Bold" FontFamily="Arial"/>
</Border>
除了绑定路径之外,每个值都一次又一次地完全相同。所以我为RibbonTextBox编写了这个样式:
<Style TargetType="my:RibbonTextBox" x:Key="StandardRibbonTextBox">
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="Background" Value="#FAFAFA" />
<Setter Property="MinHeight" Value="0" />
<Setter Property="FontSize" Value="12" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="FontFamily" Value="Arial" />
</Style>
现在我想为上述边框编写样式,并整合了RibbonTextBox样式。这里我到目前为止:
<Style TargetType="Border" x:Key="borderStyle">
<Setter Property="Background" Value="#bbc2ce" />
</Style>
有没有可能在这里集成我的TextBox风格?如果没有,有人知道,如何解决这个问题?
在此先感谢!
号'Border.Child = TextBox'不能样式一起(除非你重新定义父控制模板,但你不能再用来设置嵌套控制不同的结合),但是可以为两者创建两种样式。如果您必须使用可重复的布局(组),请考虑使用'UserControl'。 – Sinatr
@Sinatr:谢谢! – Joshit