在我的项目(ABC)中,我有MainWindow.xaml,我为它定义了一个工具栏,这个工具栏是在 资源/视图/ 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>
我错过了什么?
谢谢, 阿米特
答案 0 :(得分:4)
由于View1
在单独的ResourceDictionary
中被引用,您需要将其合并到此ResourceDictionary
的{{1}}。
尝试将此添加到Window
声明中的代码:
Window
此时,<Window.Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource/Views/ApplicationToolbar.xaml"/>
</ResourceDictionary.MergedDictionaries>
</Window.Resources>
应该能够引用Window
。
注意:我没有在IDE中对此进行全面测试,因此可能会出现轻微的语法错误或路径问题。您可能必须使用Pack URI格式化字典网址,以便正确解析引用。 WPF中的资源路径往往有点棘手。
答案 1 :(得分:0)
感谢所有人。好的,我尝试了这里建议的东西,我很欣赏迈克,它接近解决方案。对我有用的是在 App.xaml 中添加以下标记:
<Application.Resources>
<ResourceDictionary Source="Resources/views/ApplicationToolbar.xaml"/>
</Application.Resources>
感谢。 阿米特