1
我有一個使用着色器來修改其渲染方式的類。我想將着色器效果的「填充」和「大綱」屬性與基本控件的「填充」和「大綱」屬性綁定。WPF設置具有綁定屬性的根控件模板的效果
下面的xaml沒有效果。着色器可以工作,但屬性不受限制。
<Style TargetType="{x:Type local:RCTLabel}">
<Setter Property="Effect">
<Setter.Value>
<effects:SpriteFontEffect Fill="{Binding Fill}" Outline="{Binding Outline}"/>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:RCTLabel}">
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
下面的代碼的工作,但我寧願XAML,而不是內內代碼綁定的控件。
SpriteFontEffect shader;
public RCTLabel() {
shader = new SpriteFontEffect();
Effect = shader;
}
private static void OnFillChanged(object sender, DependencyPropertyChangedEventArgs e) {
var element = (RCTLabel)sender;
element.shader.Fill = element.Fill;
}
private static void OnOutlineChanged(object sender, DependencyPropertyChangedEventArgs e) {
var element = (RCTLabel)sender;
element.shader.Outline = element.Outline;
}
謝謝你的工作!唯一缺少的是RCTLabel AncestorTypes前面的'local:'。 –