0
<ResourceDictionary>
    <Style x:Key="Frame0" TargetType="Shape">
        <Setter Property="Stroke" Value="Transparent" />
        <Setter Property="StrokeThickness" Value="0" />
    </Style>
</ResourceDictionary>

<Canvas x:Name="canvas" Height="346" Width="643">
    <Rectangle Style="{StaticResource Frame0}" Stroke="Red" StrokeThickness="2" Height="77" Canvas.Left="26" Canvas.Top="13" Width="119" />
</Canvas>

私のリソース ディクショナリを使用する人は、常に私のルールに従ってください。私のスタイルが最優先されるべきです。それを達成する方法は?現在、Stroke="Red"StrokeThickness="2"は私のルールを上書きします。

4

3 に答える 3

4

私の知る限り、スタイル値でローカル値をオーバーライドする方法はありません。優先順位を見ると、ローカル値がリストの 3 番目にあり、その前に強制された値とアクティブなアニメーションからの値があることがわかります。

値をグローバルに強制する必要がある場合は、強制された値を適切な依存関係プロパティに設定する派生コントロールを作成することを検討できます。

于 2012-11-28T22:51:48.467 に答える
2

このように使用されている場合、人々があなたのプロパティをオーバーライドするのを止めることはできません。

これを実行できる唯一の方法は、(または必要なオブジェクトに基づいて) ユーザー コントロールを作成し、関連するプロパティを公開しないことですRectangleただし、それは人々が をRectangle直接使用することを止めるものではありません。

于 2012-11-28T22:52:23.077 に答える