我想我有一个简单的问题。基本上我有一个WPF应用程序,我经常使用DataGrid控件。每次我都以相同的方式设置样式(只是数据、行数和列数不同)。所以我想创建自己的控件DataGridMatrix来满足我的需求。我为它写的代码如下:<UserControl x:Class="StateMachines.UI.Controls.DataGridMatrix" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d"> <DataGrid Width="450" RenderTransformOrigin="0.657,1.249" ItemsSource="{Binding Path=Logic.DefaultView}" ColumnWidth="*" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserAddRows="False" CanUserSortColumns="False" CanUserResizeRows="False" Grid.ColumnSpan="1"> <DataGrid.ColumnHeaderStyle> <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MetroDataGridColumnHeader}"> <Setter Property="HorizontalContentAlignment" Value="Center" /> </Style> </DataGrid.ColumnHeaderStyle> <DataGrid.RowHeaderStyle> <Style TargetType="{x:Type DataGridRowHeader}" BasedOn="{StaticResource MetroDataGridRowHeader}"> <Setter Property="HorizontalContentAlignment" Value="Center" /> </Style> </DataGrid.RowHeaderStyle>如您所见,我只对其进行样式设置,没有在其中放入任何数据(在 XAML 中)。问题是我当然可以把这个控件放在我MainWindow.xaml这样的地方:<controls:DataGridMatrix x:Name="DataGridTransition"/>但是,如果我想要 fe 改变位置(在网格中,fe 我希望它Grid.ColumnSpan="2"代替Grid.ColumnSpan="1") I can't do that, cuz theDataGrid is in my control, and my control isn't derived fromDataGrid` 本身(我想,如果它是派生的,那么我可以这样做,就像在普通类中一样,对吧? )。所以最后我的问题是:有没有办法从XAML我自己的标准控件中继承UserControl并设置不同的样式(就像这里,在我的代码中我会省略<DataGrid>标签,我会将它的参数放在<UserControl>标签中+其他类似的东西DataGrid.ColumnHeaderStyle将被放置在<UserControl>) 的正下方?
1 回答
- 1 回答
- 0 关注
- 281 浏览
添加回答
举报
0/150
提交
取消