私のケースには当てはまらないthisと、適応できるかどうかわからないthisを認識しています。
WPF コントロール ライブラリに取り組んでいますが、App.xaml ファイルがありません。Styles.xmlというファイルを使用して、一般的なブラシやその他のリソースを保存します。ユーザー コントロールの XAML ファイルにリソースをインポートしてから、ブラシsBrushを背景として使用しようとしました。
これは、ルート レベルを除いて機能します。
<UserControl x:Class="CMControls.TitledWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Background="{StaticResource ResourceKey=sBrush}"> <!--EXCEPTION!-->
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/CMControls;component/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Canvas Background="{StaticResource ResourceKey=sBrush}" ... <!--Ok.-->
...
これは、ルート要素がインスタンス化されたときに、その子がUserControl.Resourcesを含めてインスタンス化されていないために発生すると思います。回避策はありますか?デザイナーでは、どこで参照を行っても、すべてが正常に機能することに注意してください。