Вопрос

У меня есть немного XAML, чтобы нарисовать логотип, и я хочу повторно использовать его в различных других файлах XAML (у него нет пользовательского интерфейса и не требует кода). Верхний уровень логотипа XAML - это Canvas вещь.

Для использования логотипа в других файлах XAML лучше всего определить этот логотип как элемент в ResourceDictionary или создать UserControl?

Это кажется легко с UserControl, Однако я хочу загрузить свои файлы XAML с помощью XAMLreader, чтобы я предпочел использовать ресурсы, чтобы их можно было указать в XAML. Кажется возможным хранить такие предметы, как Canvas в ResourceDictionary Но я не уверен, как их ссылаться.

Например, я могу определить свой логотип как ResourceDictionary элемент следующим образом:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Canvas x:Name="LayoutRoot" x:Key="Logo">
        <!-- My Logo -->
    </Canvas>
</ResourceDictionary>

Но как я могу использовать это Logo В моих других файлах XAML - может быть, у меня неверно представление о ресурсах?

Это было полезно?

Решение

Я обнаружил, что решение - это визуальный размер. Я могу определить это в ResourceDictionary следующим образом:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush x:Key="Logo">
    <VisualBrush.Visual>
<Canvas x:Name="LayoutRoot" x:Key="Logo"> 
               <!-- My Logo --> 
             </Canvas> 

Затем просто используйте этот визуальный размер, где это необходимо.

Другие советы

Как правило, если вы хотите сделать для этого словарь ресурсов, вы бы сделали стиль. Затем вы можете отказаться от управления и придумать его со своим ресурсом, в любом другом файле XAML, который вы пожелали.

Тем не менее, USERCONTROL потенциально будет более простым вариантом, так как это был бы простой, многоразовый элемент, который вы могли бы зайти куда угодно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top