从.cs代码修改样式字段

时间:2011-12-16 13:47:30

标签: wpf xaml styles

我有一个Grid.resources中描述的样式。我如何从Thumb修改椭圆的高度和宽度(在我的样本中它们是20和20)?其他属性可以从代码的其他部分访问,但不能访问((

<Style x:Key="CustomThumbForSlider" TargetType="{x:Type Thumb}">
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Thumb}">
                <Ellipse Fill="Transparent" Stroke="#FF000000" StrokeThickness="3" Height="20" Width="20"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

2 个答案:

答案 0 :(得分:1)

如果您使用TemplateBinding进行任何操作,则不会修改模板,以便在正在模板化的控件上设置属性。 (你也不要修改一种风格)

(如果您需要保留默认值,可以使用Setter设置通过TemplateBinding绑定的属性

答案 1 :(得分:0)

您可以使用包含Style的{​​{1}}上的FindResource(...)方法从后面的代码中访问FrameworkElement。如果您将方法的结果转换为Style,那么您可以访问Style

或者,将SettersWidth属性更改为从HeightResource进行更改,然后对其进行修改。