【问题标题】:Why does this happen with Datagrid?为什么 Datagrid 会发生这种情况?
【发布时间】:2011-11-12 06:05:27
【问题描述】:

我有一个 Silverlight 应用程序(VS2010 中的 Silverlight 4),其中我有一个数据网格。我想为数据网格行设置边框。所以在<DataTemplate>我写了这个:

<Border BorderBrush="Black" BorderThickness="1"></Border>

这行得通。现在我只想在底部和右侧绘制边框,我这样做了:

<Border BorderBrush="Black">
  <Border.BorderThickness>
    <Thickness Bottom="1" Left="0" Top="0" Right="1"/>
  </Border.BorderThickness>
</Border>

但这会引发 XAML 解析错误 - 无法设置只读属性 Bottom

为什么会发生这种情况?有没有其他方法可以做同样的事情?

【问题讨论】:

    标签: silverlight silverlight-4.0 datagrid border datagridtemplatecolumn


    【解决方案1】:
    <Border BorderBrush="Black" BorderThickness="0,0,1,1" />
    

    【讨论】:

    • 我知道,这很奇怪。我在这里找到了这个信息,指出它对于 Silverlight 中的某些结构不起作用(尽管它适用于 WPF 中的所有内容)msdn.microsoft.com/en-us/library/cc189036(v=vs.95).aspx:“在某些结构中,您不能使用属性语法来设置结构的值。结构存在此问题的地方包括 CornerRadius、GridLength、Rect、Size、Thickness 和 Color。相比之下,Matrix 和 Point 结构可以使用属性来设置值。(此问题特定于 Silverlight;WPF 支持结构的其他 XAML 形式。)“
    • 谢谢。我希望这是对 link 行为的解释:“厚度是一种值类型而不是类,你不能在 XAML 中设置它的属性”
    • 嗯,MS 说有些结构可以这样设置,但我猜 Silverlight 的一般规则是 - 你不能。我希望他们让它与 WPF 更兼容...
    猜你喜欢
    • 2021-01-24
    • 2021-04-30
    • 2010-09-22
    • 1970-01-01
    • 2018-04-27
    • 2013-08-02
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多