[在WPF C#中,使用带有TabControl的xaml创建一个主应用程序,并导入一个带有TabItem的ResourceDictionary,即使在Visual Studio预览中,也仅在应用程序上呈现通用标签“(Collection)”。
MainWindow.xaml:
<Window x:Class="WpfAppPOC.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfAppPOC"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<TabControl>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="tab_input.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</TabControl>
</Window>
tab_input.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfAppPOC">
<TabItem x:Key="tab_inputs" Header="Input">
<StackPanel>
<GroupBox Header="Input Registers">
<Grid>
<Button>Excel Import</Button>
<Button>Sharepoint Import</Button>
<Button>Choose Path</Button>
<ComboBox>
<ComboBoxItem>
<TextBlock Foreground="Red">Providers</TextBlock>
</ComboBoxItem>
<ComboBoxItem>
<TextBlock Foreground="Green">Relations</TextBlock>
</ComboBoxItem>
<ComboBoxItem>
<TextBlock Foreground="Blue">Providers Contacts</TextBlock>
</ComboBoxItem>
</ComboBox>
<ProgressBar Minimum="0" Maximum="100" Name="pbStatus" />
</Grid>
</GroupBox>
</StackPanel>
</TabItem>
</ResourceDictionary>
如何正确渲染从其他文件导入的ResourceDictionaries?
您应该将TabItem
资源添加到TabControl
,而不是添加ResourceDictionary
本身。试试这个: