C# 如何使两个WPF DatePicker-s以不同的宽度显示,而不考虑初始选定的日期值?
两个C# 如何使两个WPF DatePicker-s以不同的宽度显示,而不考虑初始选定的日期值?,c#,wpf,xaml,datepicker,C#,Wpf,Xaml,Datepicker,两个日期选择器控件最初显示为不同的宽度,其中一个控件将选择的日期设置为空,另一个控件将使用非空日期时间初始化 这里的问题陈述是-在用户将日期值输入到具有null初始值的控件中后,Width保持不变 如何配置DatePicker初始显示,使其大小相同,而不管初始SelectedDate是否为空 XAML中有以下布局定义: <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto&
日期选择器
控件最初显示为不同的宽度
,其中一个控件将选择的日期
设置为空
,另一个控件将使用非空日期时间
初始化
这里的问题陈述是-在用户将日期值输入到具有null
初始值的控件中后,Width
保持不变
如何配置DatePicker
初始显示,使其大小相同,而不管初始SelectedDate
是否为空
XAML中有以下布局定义:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DatePicker SelectedDate="{Binding Path=SelectedDate1, Mode=TwoWay}"/>
</Grid>
<Grid Grid.Row="1" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DatePicker SelectedDate="{Binding Path=SelectedDate2, Mode=TwoWay}"/>
</Grid>
</Grid>
将
列定义的SharedSizeGroup
属性设置为相同的值,并将父网格的IsSharedSizeScope
附加属性设置为true
:
<Grid Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="a" Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DatePicker SelectedDate="{Binding Path=SelectedDate1, Mode=TwoWay}"/>
</Grid>
<Grid Grid.Row="1" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="a" Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DatePicker SelectedDate="{Binding Path=SelectedDate2, Mode=TwoWay}"/>
</Grid>
</Grid>
日期选择器是否或应该扩展到初始大小之外?如果没有,您可以只指定一个固定的宽度
。是否有任何DatePicker
始终具有日期值并因此具有所需大小?@根据主题(字体),DatePicker
可能会更改,因此为Width
指定常量值在一般情况下不起作用谢谢你的回答。提议的解决方案不够通用。假设我们需要考虑不同的主题(字体大小),有没有办法改进以使父布局不会固定大小?而不是写你喜欢的内容。@Tim:你试过这个吗?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition Height="35"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DatePicker Grid.Row="0" Grid.Column="0"
SelectedDate="{Binding Path=SelectedDate1, Mode=TwoWay}"/>
<DatePicker Grid.Row="1" Grid.Column="0"
SelectedDate="{Binding Path=SelectedDate2, Mode=TwoWay}"/>
<Grid Grid.IsSharedSizeScope="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Row="0" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="a" Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DatePicker SelectedDate="{Binding Path=SelectedDate1, Mode=TwoWay}"/>
</Grid>
<Grid Grid.Row="1" Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="a" Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<DatePicker SelectedDate="{Binding Path=SelectedDate2, Mode=TwoWay}"/>
</Grid>
</Grid>