WPF GridViewCellTemplate和GridViewColumnHeader宽度问题

时间:2017-02-22 15:40:00

标签: wpf xaml width datatemplate gridviewcolumn

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

in the figure

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>

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

1 个答案:

答案 0 :(得分:0)

<强>解决即可。我用Stack替换了StackPanel。

<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>