在我的应用程序中,我有一些逻辑上属于一起的控件,并且在不同窗口的许多地方重复使用。控件始终放置在网格内。
我不想在每次使用控件(和后面的代码)时都复制它们,而是希望将它们作为单个 UserControl 在单个 xaml 文件中定义和维护。
我现在有这个:
<Grid>
<Grid.ColumnDefinitions>
[ColumnDefinitions...]
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
[RowDefinitions...]
</Grid.RowDefinitions>
<StackPanel Grid.Column="0" Grid.Row="0">
<TextBlock Text="Caption" />
<Border Padding="2" x:Name="myBorder">
<TextBox TabIndex="1" x:Name="myTxt"/>
</Border>
</StackPanel>
<ListBox x:Name="myList" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Margin="5,50,5,0" Height="100" VerticalAlignment="Top" Visibility="Collapsed" />
[More controls..]
</Grid>
但我想重用这部分:
<StackPanel Grid.Column="0" Grid.Row="0">
<TextBlock Text="Caption" />
<Border Padding="2" x:Name="myBorder">
<TextBox TabIndex="1" x:Name="myTxt"/>
</Border>
</StackPanel>
<ListBox x:Name="myList" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Margin="5,50,5,0" Height="100" VerticalAlignment="Top" Visibility="Collapsed" />
作为单个控件 - 但在使用控件时如何定义 Grid.Column(以某种方式将其作为参数提供)? - 以及如何设置 Grid.RowSpan 值(即使代码已移动到新的 xaml 文件,而不是在网格内定义)?
有什么意见吗?
将它们制作成单独的用户控件,然后将其包含在您的项目中。
如果您使用的是 Blend,那真的很简单,只需选择所有控件,右键单击并制作成用户控件即可。
我是一名优秀的程序员,十分优秀!