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>