silverlight 样式设置问题
封装datagrid,调整其的样式,表头,column,row等样式,设计方法见下面内容。
按照下面的操作,发现 DataGridEx只能展示了DataGridStyle1修改的样式,但是DataGridRowStyle1和其他表头,column等样式,并未使用样式文件中修改的样式。
请问应该怎么管理样式能使在修改表头,column,row等样式后并设置给DataGridEx???
覆盖默认样式:
- C# code
public class DataGridEx : DataGrid { public DataGridEx(): base(){ if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this)){ this.DefaultStyleKey = typeof(DataGridEx); } } }样式文件定义:
- XML code
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:slControlsGv="clr-namespace:SLControls.GridView;assembly=SLControls"> <!--DataGrid样式--><Style x:Key="DataGridStyle1" TargetType="slControlsGv:DataGridEx"><Setter Property="RowBackground" Value="#AAEAEFF4"/>。。。。。。。。。。。。。</Style><!--DataGridRow样式--><Style x:Key="DataGridRowStyle1" TargetType="sdk:DataGridRow"><Setter Property="IsTabStop" Value="False"/>。。。。。。。。。。。。。</Style><!--其他表头,column等样式-->。。。。。</ResourceDictionary>
[解决办法]
是需要自定义这样的效果么?
请参考:http://www.silverlightchina.net/html/developer/silverlight/2009/0910/173.html
[解决办法]
貌似datagrid用xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
引用的是不能修改的吧。
用这个引用试试:xmlns:Primitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
xmlns:Controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
如:
<!--DataGridRow样式-->
<Style x:Key="DataGridRowStyle1" TargetType="Controls:DataGridRow">
<Setter Property="IsTabStop" Value="False"/>
。。。。。。。。。。。。。
</Style>
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Width="120">
<sdk:DataGridTemplateColumn.HeaderStyle>
<Style TargetType="Primitives:DataGridColumnHeader">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="MinHeight" Value="40"/>
。。。。。
//您试试。。。