Как использовать внешний Canvas XAML в ресурсе - PullRequest
0 голосов
/ 31 января 2019

Я создаю приложение wpf в Visual Studio 2017.

У меня есть несколько значков в виде отдельных файлов в формате xaml.Они выглядят примерно так:

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="appbar_connect" Width="76" Height="76" Clip="F1 M 0,0L 76,0L 76,76L 0,76L 0,0">
    <Path Width="36.7542" Height="36.7542" Canvas.Left="19.6229" Canvas.Top="19.6229" Stretch="Fill" Fill="#FF000000" Data="F1 M 25.7639,28.0031L 20.0866,22.3258C 19.4683,21.7075 19.4683,20.705 20.0866,20.0866C 20.705,19.4683 21.7075,19.4683 22.3258,20.0867L 28.0031,25.7639C 32.3443,22.5092 38.5302,22.856 42.4783,26.8042L 26.8041,42.4784C 22.856,38.5302 22.5092,32.3443 25.7639,28.0031 Z M 49.1958,33.5217C 53.144,37.4699 53.4908,43.6557 50.2361,47.9969L 55.9133,53.6742C 56.5317,54.2925 56.5317,55.295 55.9133,55.9134C 55.295,56.5317 54.2925,56.5317 53.6742,55.9134L 47.9969,50.2361C 43.6557,53.4908 37.4698,53.1441 33.5216,49.1959L 36.8804,45.8371L 34.0814,43.0381C 33.1539,42.1107 33.1539,40.6069 34.0814,39.6794C 35.0089,38.7519 36.5127,38.7519 37.4402,39.6794L 40.2392,42.4784L 42.4783,40.2392L 39.6794,37.4402C 38.7519,36.5127 38.7519,35.009 39.6794,34.0815C 40.6069,33.154 42.1106,33.154 43.0381,34.0815L 45.8371,36.8804L 49.1958,33.5217 Z "/>
</Canvas>

Я заметил, что у них нет ключа x: просто x: Name

Я заставил их работать, копируя и вставляя код вмоя библиотека ресурсов и добавление ключа x: Key для ссылки на них с помощью

<Viewbox>
    <ContentControl Content="{StaticResource appbar_connect}" />
</Viewbox>

в моем главном окне xaml.

Но есть ли способ просто поместить их в папку и сослаться на нихимя без необходимости открывать каждое, копировать, вставлять и добавлять x: теги?

1 Ответ

0 голосов
/ 31 января 2019

Не совсем то, что вы просили, но для управления моими значками у меня есть ressourceDictonary, содержащий все значки как стиль, и я выбираю их, используя их x: Key, например:

</ResourceDictionary>
  <Style TargetType="{x:Type Path}" x:Key="Close">
    <Setter Property="Stroke" Value="Black"/>
    <Setter Property="Data" Value="M 15.125 12.28125 [...]Z"/>
  </Style>
  [...]
  <Style TargetType="{x:Type Path}" x:Key="Reload">
    <Setter Property="Stroke" Value="Black"/>
    <Setter Property="Data" Value="M 20 4 C 15.054688 4 11 [...]Z"/>
  </Style>
</ResourceDictionary>

Использование:

<Button>
   <Viewbox Height="25">
       <Path Fill="{StaticResource stdBackGround}" Style="{StaticResource Close}"/>
   </Viewbox>
</Button>  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...