xaml Как ссылаться на динамический ресурс не как атрибут, а как элемент - PullRequest
3 голосов
/ 09 марта 2009

У меня есть изображение, которое мне нужно использовать в моем приложении в нескольких местах. Я хочу определить изображение только один раз в словаре ресурсов, и другие мои файлы xaml имеют именно это определение. Я могу Единственное, что я не смог понять, это как ссылаться на что-то, определенное как элемент xaml вместо атрибута внутри атрибута xaml.

Вот мой ResourceDictionary

# resourceDictionary.xaml

<LinearGradientBrush x:Key="MyGradient" StartPoint="0,0.5" EndPoint="1,0.5">
    <GradientStop Color="#A5000000" Offset="0"/>
    <GradientStop Color="#00000000" Offset="1"/>
</LinearGradientBrush>

<Image x:Key="MyImage" Source="MyGlyph.png" Width="20" Height="20" />

Так что в моем xaml я знаю, как ссылаться на градиент как атрибут объекта управления

<TextBlock Text="Sample Text" Background="{DynamicResource MessageGradient}"/>

Но я хочу выяснить, как он ссылается на изображение, которое представляет собой полноценный объект управления. В этом примере просто создается кнопка с текстом «{DynamicResource MyImage}» вместо кнопки.

<!-- Want MyImage to be content of the button -->
<Button>
   {DynamicResource MyImage}
</Button>

Есть ли простой способ сделать это, или мне придется создать шаблон элемента управления, который содержит только мое изображение, и затем в моем xaml есть тег изображения, который использует шаблон элемента управления?

Ответы [ 3 ]

5 голосов
/ 09 марта 2009

Поскольку вы хотите, чтобы изображение было содержимым кнопки, вы должны иметь возможность связать это со свойством Content:

<Button Content="{DynamicResource MyImage}" />
3 голосов
/ 17 октября 2010
<!-- Want MyImage to be content of the button --> 
<Button> 
   <DynamicResource  ResourceKey="MyImage"/>
</Button> 
0 голосов
/ 09 марта 2009

Если вы пытаетесь поместить изображение в качестве фона любого элемента управления

  <Button  Content="My Button">
        <Button.Background>
            <ImageBrush   ImageSource="MyGlyph.png"/>
        </Button.Background>
    </Button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...