为了账号安全,请及时绑定邮箱和手机立即绑定

使用继承定义自定义 WPF 控件

使用继承定义自定义 WPF 控件

C#
长风秋雁 2021-09-19 18:58:54
我想我有一个简单的问题。基本上我有一个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
提交
取消
意见反馈 帮助中心 APP下载
官方微信