问题描述
我都尝试的HorizontalAlignment
和 TextAlignment
,但没有任何效果。
< GridViewColumn宽度=自动标题=类型>
< GridViewColumn.CellTemplate>
<的DataTemplate>
< TextBlock的文本={绑定类型}的HorizontalAlignment =中心TextAlignment =中心/>
< / DataTemplate中>
< /GridViewColumn.CellTemplate>
< / GridViewColumn>
任何想法?
编辑:
XAML中code:
<窗口x:类=EffectsWindow.MainWindow
的xmlns =http://schemas.microsoft.com/winfx/2006/xaml/$p$psentation
的xmlns:X =http://schemas.microsoft.com/winfx/2006/xaml
标题=效果编辑器
< DockPanel中VerticalAlignment =拉伸>
< DockPanel.Resources>
<的ListView
DockPanel.Dock =顶
HorizontalContentAlignment =拉伸
的ItemsSource ={结合EditorViewModel.AllEffects}>
< ListView.View>
< GridView控件>
< GridViewColumn宽度=自动
DisplayMemberBinding ={结合名}
标题=名称/>
< GridViewColumn宽度=自动标题=类型>
< GridViewColumn.CellTemplate>
<的DataTemplate>
< TextBlock的文本={绑定类型}的HorizontalAlignment =中心TextAlignment =中心/>
< / DataTemplate中>
< /GridViewColumn.CellTemplate>
< / GridViewColumn>
< / GridView的>
< /ListView.View>
< / ListView控件>
< DockPanel中WIDTH =100
高度=100
保证金=0,0,20,20
的HorizontalAlignment =右
VerticalAlignment =底部>
<标签保证金=0,0,0,0
内容=数据
DockPanel.Dock =评出的/>
<列表框
VerticalAlignment =热门/>
< / DockPanel中>
< / DockPanel中>
< /窗>
你尝试HorizontalContentAlignment?在列?
- 编辑 -
原来它是有点难以找到合适的地方把这个HorizontalContentAlignment ...:)
使用
< ListView.Resources>
<风格的TargetType =ListViewItem的>
< setter属性=HorizontalContentAlignmentVALUE =中心/>
< /样式和GT;
< /ListView.Resources>
在列表视图。
史努比通常有助于u到在正确的道路上。此内容presenter是所使用的ListViewItem的,并因此获得了比对,从上一个ListViewItem的的ContentAlignment。你无法访问ListViewItem的直接,这就是为什么ü需要一个风格
和全code:
< DockPanel中VerticalAlignment =拉伸>
<的ListView
DockPanel.Dock =顶
HorizontalContentAlignment =拉伸
X:名称=MyListView>
< ListView.Resources>
<风格的TargetType =ListViewItem的>
< setter属性=HorizontalContentAlignmentVALUE =中心/>
< /样式和GT;
< /ListView.Resources>
< ListView.View>
< GridView控件>
< GridViewColumn宽度=自动
DisplayMemberBinding ={结合名}
标题=名称/>
< GridViewColumn宽度=自动标题=类型>
< GridViewColumn.CellTemplate>
<的DataTemplate>
< TextBlock的文本={绑定类型}的HorizontalAlignment =中心TextAlignment =中心/>
< / DataTemplate中>
< /GridViewColumn.CellTemplate>
< / GridViewColumn>
< / GridView的>
< /ListView.View>
< / ListView控件>
< DockPanel中WIDTH =100
高度=100
保证金=0,0,20,20
的HorizontalAlignment =右
VerticalAlignment =底部>
<标签保证金=0,0,0,0
内容=数据
DockPanel.Dock =评出的/>
<列表框
VerticalAlignment =热门/>
< / DockPanel中>
< / DockPanel中>
I tried both HorizontalAlignment
and TextAlignment
but it has no effect.
<GridViewColumn Width="Auto" Header="Type">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Type}" HorizontalAlignment="Center" TextAlignment="Center" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Any ideas?
EDIT:
Xaml code:
<Window x:Class="EffectsWindow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Effects Editor"
<DockPanel VerticalAlignment="Stretch">
<DockPanel.Resources>
<ListView
DockPanel.Dock="Top"
HorizontalContentAlignment="Stretch"
ItemsSource="{Binding EditorViewModel.AllEffects}">
<ListView.View>
<GridView>
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Name}"
Header="Name" />
<GridViewColumn Width="Auto" Header="Type">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Type}" HorizontalAlignment="Center" TextAlignment="Center" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<DockPanel Width="100"
Height="100"
Margin="0,0,20,20"
HorizontalAlignment="Right"
VerticalAlignment="Bottom">
<Label Margin="0,0,0,0"
Content="Data"
DockPanel.Dock="Top" />
<ListBox
VerticalAlignment="Top"/>
</DockPanel>
</DockPanel>
</Window>
did you try HorizontalContentAlignment? on the column?
-- EDIT --
turns out it's kinda hard to find the right place to put this HorizontalContentAlignment... :)
use this
<ListView.Resources>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</ListView.Resources>
in the listview.
Snoop usually helps u to be on the right path. This ContentPresenter is the used by the ListViewItem, and it gets its Alignment from the ContentAlignment on the ListViewItem. u can't access the ListViewItem directly, and that's why u need that Style
and the full code:
<DockPanel VerticalAlignment="Stretch">
<ListView
DockPanel.Dock="Top"
HorizontalContentAlignment="Stretch"
x:Name="MyListView">
<ListView.Resources>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</ListView.Resources>
<ListView.View>
<GridView >
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Name}"
Header="Name" />
<GridViewColumn Width="Auto" Header="Type">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Type}" HorizontalAlignment="Center" TextAlignment="Center" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<DockPanel Width="100"
Height="100"
Margin="0,0,20,20"
HorizontalAlignment="Right"
VerticalAlignment="Bottom">
<Label Margin="0,0,0,0"
Content="Data"
DockPanel.Dock="Top" />
<ListBox
VerticalAlignment="Top"/>
</DockPanel>
</DockPanel>
这篇关于如何中心在WPF中CellTemplate内一个TextBlock?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!