簡體   English   中英

DataGrid中的TextAlignment-> C#WPF

[英]TextAlignment in a Datagrid --> C# WPF

早上好,我有一個簡短的問題。

我在itemsource上綁定了一個數據網格,現在我嘗試格式化單元格的alginment屬性。

   <DataGrid x:Name="dgrid"
      Margin="10,13,386,0"
      SelectionMode="Single"
      SelectionUnit="FullRow"
      IsReadOnly="True"
      ItemsSource="{Binding Patient_view, Mode=TwoWay}"
      SelectedItem="{Binding Patient_selected_item, Mode=TwoWay}"
      AutoGenerateColumns="False"
      CanUserAddRows="False"
      TextBlock.TextAlignment="Center"
      Height="645"
      VerticalAlignment="Top"
      HorizontalGridLinesBrush="#FFF5FAF7"
      VerticalGridLinesBrush="#FFF5FAF7"
      FontFamily="Arial">
<DataGrid.ColumnHeaderStyle>
    <Style  TargetType="{x:Type DataGridColumnHeader}">
        <Setter Property="FontWeight"
                Value="Bold" />
        <Setter Property="HorizontalAlignment"
                Value="Stretch" />
        <Setter Property="HorizontalContentAlignment"
                Value="Center" />
    </Style>
</DataGrid.ColumnHeaderStyle>
<DataGrid.Columns>
    <DataGridTextColumn TextBlock.TextAlignment="Left"
                        Header="Name"
                        Binding="{Binding Nachname}"
                        Width="*"
                        CanUserResize="False" />
    <DataGridTextColumn TextBlock.TextAlignment="Left"
                        Header="Vorname"
                        Binding="{Binding Vorname}"
                        Width="*"
                        CanUserResize="False" />
    <DataGridTextColumn TextBlock.TextAlignment="Right"
                        Header="Versichertennr."
                        Binding="{Binding Versichertennummer}"
                        Width="100"
                        CanUserResize="False" />
    <DataGridTextColumn TextBlock.TextAlignment="Left"
                        Header="Status"
                        Binding="{Binding Versichertenstatus}"
                        Width="50"
                        CanUserResize="False" />
    <DataGridTextColumn TextBlock.TextAlignment="Left"
                        Header="IK"
                        Binding="{Binding Kostentraegerlk}"
                        Width="50"
                        CanUserResize="False" />
    <DataGridTextColumn TextBlock.TextAlignment="Left"
                        Header="Geburtsdatum"
                        Binding="{Binding Geburtsdatum, StringFormat=\{0:dd.MM.yyyy\}}"
                        Width="95"
                        CanUserResize="False" />
    <DataGridTextColumn TextBlock.TextAlignment="Left"
                        Header="Strasse"
                        Binding="{Binding StrasseHausnummer}"
                        Width="300"
                        CanUserResize="False" />
    <DataGridTextColumn TextBlock.TextAlignment="Right"
                        Header="PLZ"
                        Binding="{Binding Postleitzahl}"
                        Width="60"
                        CanUserResize="False" />
</DataGrid.Columns>

有人可以告訴我為什么TextBlock.Alignment不起作用嗎? 也許該怎么辦? 我看到了ax:Key模板的一些解決方案,但是我不能使用x:Key,因為:

The "Key" attribute can only be used on an element taht is contained in "IDictionary".

所以我不能使用它們:(

我對xaml有點困惑和陌生。

如果有人可以幫助我會很好:)謝謝

您可以在具有TextBlock的DataGridTextColumn上應用ElementStyle並將其右對齊,它將起作用。

<DataGrid x:Name="dgrid" Margin="10,31,10,-233"    IsReadOnly="True"  
            AutoGenerateColumns="False" CanUserAddRows="False" TextBlock.TextAlignment="Center" Height="627" VerticalAlignment="Top" HorizontalGridLinesBrush="#FFF5FAF7" VerticalGridLinesBrush="#FFF5FAF7" FontFamily="Arial" >
            <DataGrid.ColumnHeaderStyle>
                <Style  TargetType="{x:Type DataGridColumnHeader}">
                    <Setter Property="FontWeight"
                        Value="Bold" />
                    <Setter Property="HorizontalAlignment" Value="Stretch" />
                    <Setter Property="HorizontalContentAlignment" Value="Center" />
                </Style>
            </DataGrid.ColumnHeaderStyle>
            <DataGrid.Columns>
                <DataGridTextColumn  Header="Name" Binding="{Binding Nachname}"  Width="*" CanUserResize="False"  >
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="{x:Type TextBlock}">
                            <Setter Property="HorizontalAlignment" Value="Center" />
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
                <DataGridTextColumn TextBlock.TextAlignment="Left" Header="Vorname" Binding="{Binding Vorname}"  Width="*" CanUserResize="False"  >
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="{x:Type TextBlock}">
                            <Setter Property="HorizontalAlignment" Value="Right" />
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM