0

StaticResources を介して外部 ResourceDictionary の外部スタイル情報にアクセスする WPF リソースに問題があります。

Shared.xaml からスタイル情報を取得するために、WPF で多くの DynamicResources を使用する一連のコードを継承しました。デザイナー ビューが便利になるように、むしろそれらを StaticResources にしたいと考えています。.Resources に ResourceDictionary を追加できることを発見しました。これは、WPF で .Resources が既に使用されていない限り正常に機能します。その場合、ax:Key を ResourceDictionary に追加する必要があると言われました。そのキーを使用してリソースを静的に見つける方法がわからないことを除いて、私はそれを行います。

最小限の例:

<UserControl x:Class="myClass"
  ...>
  <UserControl.Resources>
    <ResourceDictionary x:Key="Shared.xaml" Source="/ExteralResource;component/Shared.xaml"/>
    <BooleanToVisibilityConverst x:Key="BoolToVis">
  </UserControl.Resources>

  <TextBlock Background="{StaticResource BrushFromSharedXAML}" /> <!-- Never finds BrushSharedXAML -->
</UserControl>

何か案は?

4

1 に答える 1

1
<UserControl.Resources>
  <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
          <ResourceDictionary Source="/ExteralResource;component/Shared.xaml"/>
      </ResourceDictionary.MergedDictionaries>
      <BooleanToVisibilityConverst x:Key="BoolToVis">
  </ResourceDictionary>
</UserControl.Resources>

ただし、実行時にこのコントロールのすべてのインスタンスに対して Shared.xaml ResourceDictionary の新しいインスタンスを実際に作成しているため、各ユーザー コントロールでこれを行うと大量の RAM が消費されることに注意してください。SharedResourceDictionaryをご覧ください

于 2013-02-07T18:15:48.617 に答える