0

私のプロジェクト (ABC) には、ツールバーを定義した MainWindow.xaml があり、このツールバーは Resource/Views/ApplicationToolbar.xmal の下のプロジェクトで次のように定義されています。

MainWindow.xaml でそれを参照し xmlns:local="clr-namespace:ABC"ました。実行するとすぐに、View123 が見つからないことを示すエラーが表示されます。

詳細情報: (編集)

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:ABC">

    <StackPanel x:Key="View1">
        <Button Margin="3" Content="Test1"></Button>
        <Button Margin="3" Content="Test2"></Button>
    </StackPanel>

</ResourceDictionary>

MainWindow.xmal には次のものがあります。

<Window x:Class="ABC.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:ABC"
        Title="MainWindow" Height="350" Width="525">
    <Grid Margin="10">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="10"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="10"/>
        </Grid.RowDefinitions>

        <!-- FOLLOWING LINE CAUSING ERROR-->
        <ContentControl Name="Toolbar" Content="{StaticResource View1 }"></ContentControl>

    </Grid>
</Window>

私は何が欠けていますか?

ありがとう、アミット

4

2 に答える 2

4

View1は別の で参照されているため、これResourceDictionaryを にマージする必要があります。ResourceDictionaryWindow

Windowこれを宣言のすぐ内側のコードに追加してみてください。

<Window.Resources>
  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Resource/Views/ApplicationToolbar.xaml"/>
  </ResourceDictionary.MergedDictionaries>
</Window.Resources>

この時点で、Windowを参照できるはずView1です。

注: IDE でこれを完全にテストしていないため、わずかな構文エラーやパスの問題がある可能性があります。参照を正しく解決するには、ディクショナリの URL をパック URIでフォーマットする必要がある場合があります。WPF のリソース パスは、少し扱いに​​くい傾向があります。

于 2012-08-14T17:28:51.640 に答える
0

ありがとうございます。OK、ここで提案されたことを試してみました。マイクに感謝します。解決策に近かったです。私にとってうまくいったのは、App.xamlに次のタグを追加することでした:

<Application.Resources>
    <ResourceDictionary Source="Resources/views/ApplicationToolbar.xaml"/>
</Application.Resources>

ありがとう。アミット

于 2012-08-14T17:41:41.340 に答える