Resourcedictionary要素またはusercontrol?
-
20-09-2019 - |
質問
ロゴを描くためのXAMLがいくつかあり、他のさまざまなXAMLファイルでこれを再利用したい(UIがなく、コードは必要ありません)。ロゴXAMLのトップレベルはaです Canvas
アイテム。
他のXAMLファイルでロゴを使用するには、このロゴをの要素として定義するのが最善です。 ResourceDictionary
またはaを作成します UserControl
?
これは簡単に思えます UserControl
, ただし、XAMLファイルをXAMLReaderでロードしたいので、リソースを使用してXAML内で指定できるようにしたいと考えています。 aなどのアイテムを保存することは可能です Canvas
で ResourceDictionary
しかし、私はそれらを参照する方法がわかりません。
たとえば、私は自分のロゴを ResourceDictionary
次の要素:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
</ResourceDictionary>
しかし、どうすればこれを使用できますか Logo
私の他のXAMLファイルで - 多分私はリソースについて間違った考えを持っていますか?
解決
ソリューションはVisualBrushであることがわかりました。これをResourcedictionaryで次のように定義できます。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush x:Key="Logo">
<VisualBrush.Visual>
<Canvas x:Name="LayoutRoot" x:Key="Logo">
<!-- My Logo -->
</Canvas>
次に、必要に応じてこのVisualBrushを使用してください。
他のヒント
通常、このためにリソース辞書を作成したい場合は、スタイルを作成します。その後、コントロールをドロップし、リソースでスタイルを整えることができます。
ただし、usercontrolは、どこにでもドロップできるシンプルで再利用可能な要素になるため、より簡単なオプションになる可能性があります。
所属していません StackOverflow