4

私のケースには当てはまらない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を含めてインスタンス化されていないために発生すると思います。回避策はありますか?デザイナーでは、どこで参照を行っても、すべてが正常に機能することに注意してください

4

1 に答える 1