Visual Studio Ultimate 2012 RC win8 Metro应用的一个小bug-样式继承

偶然发现Visual Studio Ultimate 2012 RC的一个小bug。

MSDN上的Using based-on styles示例

http://msdn.microsoft.com/en-US/library/windows/apps/xaml/hh465381

复制代码
 1 <Page.Resources>
 2     <Style x:Key="BasicStyle" TargetType="ContentControl">
 3         <Setter Property="Width" Value="100" />
 4         <Setter Property="Height" Value="30" />
 5     </Style>
 6     <Style x:Key="ButtonStyle" TargetType="Button" BasedOn="{StaticResource BasicStyle}">
 7         <Setter Property="BorderBrush" Value="Orange" />
 8         <Setter Property="BorderThickness" Value="2" />
 9         <Setter Property="Foreground" Value="Orange" />
10     </Style>
11     <Style x:Key="CheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource BasicStyle}">
12         <Setter Property="BorderBrush" Value="Green" />
13         <Setter Property="BorderThickness" Value="2" />
14         <Setter Property="Foreground" Value="Green" />
15     </Style>
16 </Page.Resources>
17 
18 <Grid Background="White">
19     <Button Content="Button" Style="{StaticResource ButtonStyle}"/>
20     <CheckBox Content="CheckBox"  Style="{StaticResource CheckBoxStyle}"/>
21 </Grid>
复制代码

该段代码在 Visual Studio Ultimate 2012 RC 中会报错:Can only base on a Style with target type that is base type of this style's target type.
但实际是可以运行的。

因为Button和CheckBox都继承自ButtonBase,于是我把第二行代码改为<Style x:Key="BasicStyle" TargetType="ButtonBase">,这样就不报错了,同样也能运行。

毕竟是RC版,使用的时候还有一些其它问题,正式版应该会好很多。

 

 

posted @   成宇佳  阅读(426)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示