wpf中的listview如何改变GridViewColumn以及Title的水平对齐方式
RT,貌似xaml中找不到对应属性GridViewColumnHeader可以改,但是仍旧无法改变GridViewColumn的水平对齐方式,根本没有对应属性啊...
RT,貌似xaml中找不到对应属性
GridViewColumnHeader可以改,但是仍旧无法改变GridViewColumn的水平对齐方式,根本没有对应属性啊 展开
GridViewColumnHeader可以改,但是仍旧无法改变GridViewColumn的水平对齐方式,根本没有对应属性啊 展开
2个回答
展开全部
DataType.Name 是一个 String.
ComboBoxItem 是一个 Control.
你的例子中, ComboBox 的 SelectedValue 的类型应该对应 ComboBoxItem, 而你企图强制指巧中定它为一个 String, 显然不行.
概念不清 :(
试试这个:
在 根元素加入:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
然后重新写过 ComboBox:
<ComboBox SelectedValue="">
<sys:String>String</sys:String>
<sys:String>Boolean</sys:String>
<sys:String>Byte[]</sys:String>
</ComboBox>
then, you got it.
----
补充说明一下档州, 我这个与你的 ComboBox 的不同之处:
我的示例中, ComboBox 的每个 Item 是 String. SelectedValue 就是一个 string, 只是这个 String 默认的由 ComboBoxItem 来承载.
你的示例中, ComboBox 的每个 Item 是 ComboBoxItem, 这个 ComboBoxItem 的Content 值是 String. SelectedValue 是一个 ComboBoxItem. (由於它是 ComboBoxItem, 所以 wpf 不会再用一个 ComboBoxItem 来承载它.)
直观一点就是:
<ComboBox x:Name="cb1" SelectedIndex="0">
<ComboBoxItem Content="String"/>
</ComboBox>
<ComboBox x:Name="cb2"行宽蔽 SelectedIndex="0">
<sys:String>String</sys:String>
</ComboBox>
MessageBox.Show(cb1.SelectedValue.GetType().ToString());
MessageBox.Show(cb2.SelectedValue.GetType().ToString());
答案应该是:
System.Windows.Controls.ComboBoxItem 和
System.String
Hope help.
ComboBoxItem 是一个 Control.
你的例子中, ComboBox 的 SelectedValue 的类型应该对应 ComboBoxItem, 而你企图强制指巧中定它为一个 String, 显然不行.
概念不清 :(
试试这个:
在 根元素加入:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
然后重新写过 ComboBox:
<ComboBox SelectedValue="">
<sys:String>String</sys:String>
<sys:String>Boolean</sys:String>
<sys:String>Byte[]</sys:String>
</ComboBox>
then, you got it.
----
补充说明一下档州, 我这个与你的 ComboBox 的不同之处:
我的示例中, ComboBox 的每个 Item 是 String. SelectedValue 就是一个 string, 只是这个 String 默认的由 ComboBoxItem 来承载.
你的示例中, ComboBox 的每个 Item 是 ComboBoxItem, 这个 ComboBoxItem 的Content 值是 String. SelectedValue 是一个 ComboBoxItem. (由於它是 ComboBoxItem, 所以 wpf 不会再用一个 ComboBoxItem 来承载它.)
直观一点就是:
<ComboBox x:Name="cb1" SelectedIndex="0">
<ComboBoxItem Content="String"/>
</ComboBox>
<ComboBox x:Name="cb2"行宽蔽 SelectedIndex="0">
<sys:String>String</sys:String>
</ComboBox>
MessageBox.Show(cb1.SelectedValue.GetType().ToString());
MessageBox.Show(cb2.SelectedValue.GetType().ToString());
答案应该是:
System.Windows.Controls.ComboBoxItem 和
System.String
Hope help.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先, 说明你提出该问题的原因: 不了解 wpf 中控件的 style 及 Template, 你可以从
http://www.interact-sw.co.uk/iangblog/2007/02/14/wpfdefaulttemplate 得到一些有用的帮助.
其次, 如果你了解了上述的原因, 你就可以应付这种问题. 因此,解决此问题的方法是 定义一个 Style 或者修改缺省 Template, 由于 设置 Style 比较容易, 因此给出一个途径:
在你的 GridViewColumn可以应用到 的资源范围内(例如在 Window.Resources 中) 设置 Style:
<Window.Resources>
....
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
</Style>
<升毕/Window.Resources>吵敬芹
上面的 style 指定 GridViewColum 的 Header 里的内容水平对齐方式是 Left.
在 Style 标签稿中中,没有指定 x:Key, 因为在此资源范围内,所有 GridViewColumn Header 都用此 Style.
------------
By the way:
tkkmx61 给出的答案盗用我 回答的另一个问题 的答案, 与此问题无关, 在此表示抗议.
http://www.interact-sw.co.uk/iangblog/2007/02/14/wpfdefaulttemplate 得到一些有用的帮助.
其次, 如果你了解了上述的原因, 你就可以应付这种问题. 因此,解决此问题的方法是 定义一个 Style 或者修改缺省 Template, 由于 设置 Style 比较容易, 因此给出一个途径:
在你的 GridViewColumn可以应用到 的资源范围内(例如在 Window.Resources 中) 设置 Style:
<Window.Resources>
....
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Left"/>
</Style>
<升毕/Window.Resources>吵敬芹
上面的 style 指定 GridViewColum 的 Header 里的内容水平对齐方式是 Left.
在 Style 标签稿中中,没有指定 x:Key, 因为在此资源范围内,所有 GridViewColumn Header 都用此 Style.
------------
By the way:
tkkmx61 给出的答案盗用我 回答的另一个问题 的答案, 与此问题无关, 在此表示抗议.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询