2017-02-22 9 views
1

私はGridViewListViewを持っています。WPF GridViewCellTemplateとGridViewColumnHeaderの幅の問題

<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である:

in the figure

に示すようGridViewColumnsの二つは、XAMLを次のように定義され、ヘッダがDataTemplateで定義されたコンテンツよりも小さい幅を有しています以下:

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

本当にありがとうございます。 ありがとう

+0

Width属性にはコンバータがあります。あなたはコードを投稿できますか? –

答えて

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>