WPF Popup - невозможно использовать DynamicResource - PullRequest
0 голосов
/ 29 ноября 2018

Я использую DropDownButton из Xceed Wpf Toolkit .В этом всплывающем окне я просто хочу отобразить заполненную вручную 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>

. Я использую Caliburn.Micro для запуска Action, когда событие MouseUpListViewItem пожары.Это отлично работает.Проблема в том, что <TextBlock Text="{DynamicResource ProjectSelectorView_NewProject}"/> Он просто пуст, несмотря на наличие ресурса.В других местах проекта синтаксис DynamicResource работает нормально.Это просто не работает внутри Popup.Я знаю, что Popup не находится в том же VisualTree, что и основное приложение, поэтому DataContext shareing немного сложнее.

Это не о DataContext, а о ResourceDictionary определено в App.xaml.my 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?

1 Ответ

0 голосов
/ 30 ноября 2018

Очевидно, это ошибка в Xceed WPF Toolkit.Я использовал версию 3.2.0, в которой была ошибка.Обновление до 3.4.0 решило проблему.

...