【问题标题】:WPF Popup - not possible to use DynamicResourceWPF 弹出窗口 - 无法使用 DynamicResource
【发布时间】:2018-11-29 15:44:12
【问题描述】:

我正在使用来自Xceed Wpf ToolkitDropDownButton。 在那个弹出窗口中,我只想显示一个手动填充的ListViewListViewItem 只是一个垂直的 StackPanelImageTextBlock

    <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>

ListViewItemMouseUp 事件触发时,我正在使用Caliburn.Micro 触发Action。这工作正常。问题在于&lt;TextBlock Text="{DynamicResource ProjectSelectorView_NewProject}"/&gt; 它只是空的,尽管资源在那里。在项目中的其他任何地方,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 问题。

标签: c# wpf xaml popup xceed


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2011-04-27
    • 2016-05-10
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多