WPF 弹出窗口 - 无法使用 DynamicResource

WPF Popup - not possible to use DynamicResource

我正在使用DropDownButton from the Xceed Wpf Toolkit。 在那个弹出窗口中,我只想显示一个手动填充的 ListViewListViewItem 只是一个带有 ImageTextBlock.

的垂直 StackPanel
    <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>

我正在使用 Caliburn.Micro 在 ListViewItemMouseUp 事件触发时触发 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>

有人知道为什么 DynamicResource 不显示在 WPF 弹出窗口中吗?

显然这是 Xceed WPF 工具包中的错误。我使用的版本 3.2.0 有错误。更新到 3.4.0 解决了问题。