В XAML укажите значок из другой сборки - PullRequest
0 голосов
/ 09 августа 2011

Я новичок в WPF и XAML.У меня есть следующее решение, которое работает с использованием codebehind.Но мне кажется, что это должно быть проще определить в XAML.

Я хочу установить Icon для ресурса в другой сборке (в частности, для FlowDecisionIcon в System.Activities.Presentation).,Следующий код работает, когда он добавлен в конструктор в коде:

InitializeComponent(); // This was already there
ResourceDictionary dict = new ResourceDictionary { Source = new Uri("pack://application:,,,/System.Activities.Presentation;V4.0.0.0;31bf3856ad364e35;component/themes/icons.xaml") };
this.Resources.MergedDictionaries.Add(dict);
Icon = this.Resources["FlowDecisionIcon"] as DrawingBrush;

Я надеялся, что будет хороший способ указать это либо в XAML, например:

<Window xmlns:sap="clr-namespace:System.Activities.Presentation;assembly=System.Activities.Presentation"
Icon="sap:FlowDecisionIcon"> ...

Или просто укажите это в Visual Studio на панели «Свойства» для свойства Icon.Но мне не удалось выяснить синтаксис, чтобы сделать либо.

1 Ответ

1 голос
/ 11 августа 2011

Похоже, что вы находитесь в элементе управления Window.

<Window Icon="{DynamicReosurce FlowDecisionIcon}"
     .....
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ReosurceDictionary Source="pack://application:,,,/System.Activities.Presentation;V4.0.0.0;31bf3856ad364e35;component/themes/icons.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
</Window>

Но рекомендуется перенести объединение ресурсов в файл App.xaml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...