【发布时间】:2018-11-29 15:44:12
【问题描述】:
我正在使用来自Xceed Wpf Toolkit 的DropDownButton。
在那个弹出窗口中,我只想显示一个手动填充的ListView。
ListViewItem 只是一个垂直的 StackPanel 与 Image 和 TextBlock。
<xceed:DropDownButton Grid.Column="4" x:Name="BurgerButton">
<xceed:DropDownButton.Content>
<Image Source="/Resources/BurgerMenu_128x128.png"/>
</xceed:DropDownButton.Content>
<xceed:DropDownButton.DropDownContent>
<ListView>
<ListViewItem cal:Message.Attach="[Event MouseUp] = [Action NewProject]">
<StackPanel Orientation="Vertical">
<Image Source="/Resources/FileNew_32x32.png"/>
<TextBlock Text="{DynamicResource ProjectSelectorView_NewProject}"/>
</StackPanel>
</ListViewItem>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="DataContext" Value="{Binding DataContext, ElementName=BurgerButton}"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</xceed:DropDownButton.DropDownContent>
</xceed:DropDownButton>
当ListViewItem 的MouseUp 事件触发时,我正在使用Caliburn.Micro 触发Action。这工作正常。问题在于<TextBlock Text="{DynamicResource ProjectSelectorView_NewProject}"/> 它只是空的,尽管资源在那里。在项目中的其他任何地方,DynamicResource 语法都可以正常工作。它只是在Popup 中不起作用。我知道 Popup 与主应用程序不在同一个 VisualTree 中 - 所以DataContext 共享有点困难。
这不是关于DataContext,而是关于App.xaml 中定义的ResourceDictionary。我的App.xaml 看起来像这样:
<Application x:Class="Projectname"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CVBRecorder">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Localization/English.xaml"/>
<ResourceDictionary Source="/Localization/German.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<ResourceDictionary>
<local:AppBootstrapper x:Key="bootstrapper" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
有人知道为什么动态资源没有显示在 WPF 弹出窗口中吗?
【问题讨论】:
-
我无法重现您的问题。提问时请提供MCVE。
-
嗨@mm8,我可以在一个最小的项目中重现这个。该问题仅在使用 Xceed 的 DropDownButton 时存在。正常的 WPF 弹出窗口可以很好地找到资源。我想我会打开一个 Github 问题。