Silverlight 隐式xaml样式被显式样式覆盖
Silverlight4中有一个非常简单的xaml样式问题 当我通过显式样式设置在元素上设置样式时,隐式样式会被删除吗? 我创建了一个简单的例子来说明这个问题Silverlight 隐式xaml样式被显式样式覆盖,silverlight,xaml,silverlight-4.0,Silverlight,Xaml,Silverlight 4.0,Silverlight4中有一个非常简单的xaml样式问题 当我通过显式样式设置在元素上设置样式时,隐式样式会被删除吗? 我创建了一个简单的例子来说明这个问题 <UserControl.Resources> <Style TargetType="TextBox"> <Setter Property="Background" Value="red"/> </Style> <Style TargetTyp
<UserControl.Resources>
<Style TargetType="TextBox">
<Setter Property="Background" Value="red"/>
</Style>
<Style TargetType="FrameworkElement" x:Key="test">
<Setter Property="Margin" Value="20"/>
</Style>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<TextBox Style="{StaticResource test}" Height="40" Width="120"> </TextBox>
</Grid>
</UserControl>
因此,当我删除Style=“{StaticResource test}
将再次应用隐式样式
注意:这是一个过于简化的示例。因此,将边距移动到texbox样式不是一个选项,因为实际项目包含更大的xaml样式
是否有人知道解决方案或可以确认这是不可能的
提前点击!查看BasedOn样式属性。这将允许您继承基本样式,使用基本属性并添加一些更改 现在,BasedOn存在一个问题-它不能与隐式样式一起使用。但是,这很容易解决。本文演示了解决方法,并将更好地解释BasedOn属性:
嘿,thx对于响应,我知道如何使用basedon,但在这种情况下它不是很有用,因为你不能将框架样式建立在textbox样式的基础上。在最后的代码中,textbox将包含一个自定义模板…我猜你不想将textbox样式建立在FrameworkElement样式的基础上?不,因为我想添加Stylen在某些情况下,它可能不是很清楚,因为我过于简化了上面的例子,最后一个更复杂,需要正确的顺序。