首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

xaml中的控件样式和控件模版?解决办法

2012-04-13 
xaml中的控件样式和控件模版???xaml中的控件样式和控件模版有什么区别呢,就比如说DataGrid的外观,也不是可

xaml中的控件样式和控件模版???
xaml中的控件样式和控件模版有什么区别呢,就比如说DataGrid的外观,也不是可以只定义他的属性样式来更改他的外观么?如果定义模版的话 也是更改外观啊,不理解,希望大家可以帮我详细讲一下,最好是有个对比的例子,感激不尽!!!

[解决办法]
xaml中样式和模板的概念有一些重合性,其中模板可以包含样式,但是在实际项目中,为了方便维护会把样式独立创建为资源文件,模板也会独立创建,这样增强代码维护性和可读性。在下面网址,可以看到很多silverlight模板和样式的教程:

http://www.silverlightchina.net/plus/search.php?kwtype=0&keyword=%C4%A3%B0%E5++%D1%F9%CA%BD&searchtype=titlekeyword
[解决办法]
类似 HTML 中的 CSS 和Style属性

[解决办法]
对于模板来说更加深入的去改变和定义控件的外观,而样式要稍微小一些。
[解决办法]
晕。

打个比方吧,模板就好象是人的衣裳(这是静态的),而样式就好象是穿衣打扮的行为(这是动态的)。
[解决办法]
模板(Template)是控件另一种样式,它和样式(style)不同的是它允许已有的控件进行组合新的一个控件样式
[解决办法]
style只能在有限的范围内更改控件的外观,只是更改控件本事的一些简单属性,而模板则可以彻底颠覆控件原来本身的“样式”(可以更深入的说更改了控件本身的组成结构,因为模板当中可以由多个简单控件组合成为看上去的“一个控件”)。如下这段样式:
<Style x:Key="dgHeaderStyle" TargetType="sdk:DataGridRowGroupHeader">
<Style.Setters>
<Setter Property="Width" Value="100" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="Background" Value="Black" />
</Style.Setters>
</Style>
这只能更改控件本身的简单外观,控制高宽、居中(左右)、背(前)景等等。
而Template(模板)则完全可以改变控件的本身的外观并且能够实现控件本身所没有的功能,如下面这段模板代码:
 <sdk:DataGridTemplateColumn Header="详细">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid>
<HyperlinkButton VerticalAlignment="Center" HorizontalAlignment="Left" x:Name="btnLook" Content="查看" Click="btnLook_Click"/>
</Grid>
</Grid>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
则可以完全改变DataGrid这一列的外观和功能,此处里面放了一个链接按钮,里面有点击事件,也即当数据源绑定时,此列将是一个一个链接按钮,如果此处用样式(style)怎么可能做到这种效果呢?
总的来说,样式是控件本身就能够做到的,模板则是不能,它需要换一个“模子才能印出不同的花纹”。
楼主可以看看msdn,更详细了解二者的区别:http://msdn.microsoft.com/zh-cn/library/bb613570.aspx

热点排行