我有许多 UserControl 类:
它们都继承自一个普通的 C# 类,该类继承自 UserControl,而 UserControl 没有附加任何 XAML。我必须这样做,因为我收到错误消息说 XAML 无法继承。
问题是每个 UserControl 的 XAML 基本相同,因此我想找到某种方法来至少模拟 XAML 继承,这样我就不必为 20 个不同的类重复此代码:
<dataTypes:BaseDataType x:Class="TestDependencyProperty827.DataTypes.DataTypeLine"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dataTypes="clr-namespace:TestDependencyProperty827.DataTypes">
<StackPanel Margin="{Binding Margin}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding LabelWidth}"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal">
<TextBlock Text="{Binding Label}" FontSize="14"/>
<TextBlock FontSize="14" Text=":"/>
</StackPanel>
<TextBox Grid.Column="1" FontSize="12" HorizontalAlignment="Left"
Text="{Binding Text}"
Width="{Binding Width}"/>
</Grid>
</StackPanel>
</dataTypes:BaseDataType>
Run Code Online (Sandbox Code Playgroud)
有没有人遇到这个问题并找到解决方案?
使用适用于基类的样式:
<Style TargetType="BaseClass">
<Setter Property="Control.Template">
<Control.Value>
<StackPanel Margin="{Binding Margin}">
<!-- Rest of code here -->
</Control.Value>
</Style>
Run Code Online (Sandbox Code Playgroud)
另外,我质疑每种基本类型都需要 UserControl - 为什么不能在任何地方重复使用相同的 UserControl?
| 归档时间: |
|
| 查看次数: |
2178 次 |
| 最近记录: |