VisualBrush
このコードを使用して、ボタンに素敵な画像をレンダリングするのはなぜですか:
<Button>
<Rectangle Width="28" Height="28">
<Rectangle.Fill>
<VisualBrush Stretch="Fill" Visual="{StaticResource lovely_image}" />
</Rectangle.Fill>
</Rectangle>
</Button>
しかし、このコードでは何もレンダリングされませんか?:
<Button>
<Rectangle Width="28" Height="28">
<Rectangle.Style>
<Style TargetType="{x:Type Rectangle}">
<Setter Property="Fill">
<Setter.Value>
<VisualBrush Stretch="Fill" Visual="{StaticResource lovely_image}" />
</Setter.Value>
</Setter>
</Style>
</Rectangle.Style>
</Rectangle>
</Button>
興味深いことに、VisualBrush
2 番目の例の を に置き換えるとSolidColorBrush
、SolidColorBrush
レンダリングされます。
(なぜこれを行うのですか? DataTriggers を使用して、ViewModel の値に基づいてアイコンを交換しようとしています。)
アップデート
したがって、このコードは問題なく動作するようです。私の問題は、実際には、ビジュアルを定義するリソースの方法に奇妙な点がありました。ビジュアルは、参照されたアセンブリから読み込まれているブラシ動的リソースを使用しました。これは上記の最初の例では機能しましたが、何らかの理由で 2 番目の例では機能しませんでした。プロジェクト アセンブリと viola! のリソースにブラシをコピーしたところ、lovely_image
レンダリングされました。