如何在silverlight中删除DataGrid周围的边框

时间:2012-05-09 11:11:02

标签: silverlight silverlight-4.0

当我尝试BorderThickness =“0”时,我如何删除silverlight中数据网格周围的边框BorderBrush =“透明”它摆脱了网格左下角的格子而不是顶部我认为那是标题边框或东西但不确定我也删除了标题HeadersVisibility =“None” 如果有人可以提供帮助,那就太好了。

干杯

2 个答案:

答案 0 :(得分:1)

在Silverlight 2 Beta 2中,生成的DataGrid被边框包围。不幸的是,只需在DataGrid上设置属性就无法实现删除此边框。要删除它,需要覆盖DataGrid样式或“外观”的定义。

每个Silverlight控件(FrameworkElement)的外观都在ControlTemplate中定义。使用样式,可以使用一组自定义的XAML代码在应用程序中覆盖此模板。可以在Silverlight控件样式和模板文档中找到默认的XAML定义。特定于此主题,DataGrid的XAML定义可在DataGrid样式和模板文档中找到。

在DataGrid XAML中,查找模板定义。找到它之后,请注意DataGrid的RootElement被三个不同的Border元素包围。

这些元素可能是需要删除的项目。要开始自定义,需要将DataGrid的样式XAML作为新资源添加到我们的应用程序中。我将把它直接添加到我的UserControl中,但它也可以添加到应用程序资源中(在App.xaml中)。

要将XAML添加到UserControl,请创建一个名为UserControl.Resources的新节点,并将DataGrid XAML复制到其中(使用文档网页上方便的“复制代码”链接)。

DataGrid和Resource的名称空间定义必须匹配。在复制的XAML中,命名空间是本地的:DataGrid。 Visual Studio工具生成的默认命名空间是my:DataGrid。在上面的例子中,我将local的所有引用都改为了我的。

要处理的下一个项目是Style必须有一个Key。这用于将Framework元素(我们的DataGrid)映射到特定的样式定义。我给了样式一个TestGrid的键,它在以下DataGrid定义中使用。

此时,当您运行应用程序时,DataGrid应该与之前完全一样(我们还没有更改任何内容)。

在开始删除Border元素的定义之前,我想确保这些是罪魁祸首。要做到这一点,我将把颜色改为更明显的颜色。

运行应用程序,我得到一个屏幕

放大,显然这些元素如何参与DataGrid的显示。

从XAML中删除Border元素会生成所需的结果。

希望这不仅提供了如何从DataGrid中删除边框的参考,还提供了可用于自定义Silverlight控件的可能性的快速介绍。

复制自:http://devcenter.auburnrandall.com/Default.aspx?type=post&id=52

答案 1 :(得分:1)

您看到的元素是名为Rectangle的{​​{1}}。只需在没有它的情况下创建ColumnHeadersAndRowsSeparator

Style