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

本文介绍了在Visual Studio Ultimate 2012 RC中遇到的一个小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版,使用的时候还有一些其它问题,正式版应该会好很多。

 

 

转载于:https://www.cnblogs.com/chengyujia/archive/2012/06/27/2565549.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值