文本块未按预期对齐

时间:2017-10-24 11:26:17

标签: wpf xaml binding triggers styles

所以这是我的UI的一部分:

在顶部,我得到了CheckBoxbool ShowChangeColumn

我想要的是,如果第5行(ParentSubject)中没有显示Index 4,则Subject的故障单会垂直居中。

enter image description here

可悲的是,我所做的并不奏效。这有什么不对?

  

我希望第二行到Collapse时没有Content - 第一行填充所有可用空间 - 尊重VerticalAlignment="Center" TextBox在第1排。

<DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <Grid Margin="5,0,5,0" Height="35">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <TextBlock Text="{Binding Subject}" Grid.Row="0" ToolTip="{Binding Subject}" VerticalAlignment="Center" />
            <TextBlock Text="{Binding ParentTicketSubject}" Grid.Row="1"> 
                <TextBlock.Style>
                    <Style TargetType="TextBlock">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGrid}, Path=DataContext.ShowChangeColumn}" Value="False">
                                <Setter Property="Visibility" Value="Collapsed" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ParentTicketSubject}" Value="">
                                <Setter Property="Visibility" Value="Collapsed" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ParentTicketSubject}" Value="{x:Null}">
                                <Setter Property="Visibility" Value="Collapsed" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBlock.Style>
            </TextBlock>
        </Grid>
    </DataTemplate>
</DataGridTemplateColumn.CellTemplate>

3 个答案:

答案 0 :(得分:0)

TIMESTAMPDIFF(MINUTE, T0.created, T0.modified)

Auto会说,如果里面没有任何东西,我的身高将是0px 如果你在两个rowdefinition上放*,它将正常使用50%的第一个,剩下的50%将被最后一个使用。

答案 1 :(得分:0)

在为第二列设置Height="0"时,我找到了答案。

顶部的文字与之前的文字相同

所以我想出的是:

<Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
</Grid.RowDefinitions>
  1. 填写所有可用空间
  2. 如果已折叠 - >隐藏
  3. 像这样,它按预期工作。

    enter image description here

答案 2 :(得分:0)

尝试使用。

<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGrid}, Path=DataContext.ShowChangeColumn}" Value="False">
 <Setter Property="Visibility" Value="Collapsed" />   
 <Setter Property="Height" Value="0" />
</DataTrigger>