1

我有ListView一个GridView。其中两个的GridViewColumns标题宽度小于 中定义的内容DataTemplate,如图所示

在图中

XAML 定义如下:

<GridViewColumn Header="{lex:Loc Lang:minTemperature}" x:Name="MinTemperatureColumn"
    Width="{Binding IsVisible, Converter={StaticResource BoolToSizeConverter}}">
       <GridViewColumn.CellTemplate>
             <DataTemplate>
                   <StackPanel Orientation="Horizontal">
                         <xctk:DoubleUpDown
                               Value="{Binding AdditionalData.MinTemperature, Converter={StaticResource TemperatureToTemperatureConverter}, Mode=TwoWay}"
                                Style="{DynamicResource TemperatureDoubleUpDown}"
                                Minimum="{Binding AbsoluteTemperatureMinimum, RelativeSource={RelativeSource 
                                                    Mode=FindAncestor, AncestorType=Window}}"
                                ValueChanged="OnRunDataChanged" />
                        <TextBlock
                              Text="{Binding TemperatureUnitMeasure, RelativeSource={RelativeSource 
                                                    Mode=FindAncestor, AncestorType=Window}}"
                               Margin="3"
                               VerticalAlignment="Center"
                               Foreground="{DynamicResource StandardForegroundColor}" />
                    </StackPanel>
              </DataTemplate>
       </GridViewColumn.CellTemplate>
</GridViewColumn>

Xceed 风格的 XAML 如下:

<Style x:Key="TemperatureDoubleUpDown" TargetType="{x:Type xctk:DoubleUpDown}"
       BasedOn="{StaticResource {x:Type xctk:DoubleUpDown}}">
    <Setter Property="FontSize" Value="18" />
    <Setter Property="Width" Value="Auto" />
    <Setter Property="Increment" Value="1" />
    <Setter Property="FormatString" Value="N0" />
</Style>

任何帮助都非常感谢!谢谢

4

1 回答 1

0

解决了。我将 StackPanel 替换为 Grid。

<GridViewColumn Header="{Binding MinTemperatureUnitMeasure, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" 
      x:Name="MinTemperatureColumn"
      Width="{Binding IsCurrentJobTermocamera, Converter={StaticResource BoolToSizeConverter}}">
      <GridViewColumn.CellTemplate>
            <DataTemplate>
                 <Grid>
                       <Grid.ColumnDefinitions>
                             <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <xctk:DoubleUpDown
                              Grid.Column="0"
                              Margin="5"
                              Value="{Binding AdditionalData.MinTemperature, Converter={StaticResource TemperatureToTemperatureConverter}, Mode=TwoWay}"
                              Style="{DynamicResource TemperatureDoubleUpDown}"
                               Minimum="{Binding AbsoluteTemperatureMinimum, RelativeSource={RelativeSource 
                                                    Mode=FindAncestor, AncestorType=Window}}"
                               ValueChanged="OnRunDataChanged"
                               HorizontalAlignment="Stretch"/>
                    </Grid>
             </DataTemplate>
        </GridViewColumn.CellTemplate>
 </GridViewColumn>
于 2017-02-22T16:25:40.763 回答