Как предоставить ссылку на векторную иконку в resourcedictionary? - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь использовать векторные изображения в своем приложении wpf. У меня есть значок «ic_document.xaml» в папке «Ресурсы», вот он:

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Name="Svg63" Width="50"
    Height="50">
  <Canvas Name="Sf1">
    <Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="Path2" Fill="#000000"
          Data="M 7 2 V 48 H 43 V 14.59 l -0.28 -0.31 -12 -12 L 30.406 2 Z M 9 4 H 29 V 16 H 41 V 46 H 9 Z M 31 5.4375 39.5625 14 H 31 Z" />    
   </Canvas>
</Canvas>

icon in Folder

Я знаю, что если я хочу использовать его в своем приложении, я должен создать «ResourceDictionary», а затем просто скопировать и вставить этот код в него. Но можно ли сделать это проще и просто предоставить ссылку на ic_document.xaml? Как то так

<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <Canvas x:Key="IcTest">
     //Link to ic_document.xaml
  </Canvas>
</ResourceDictionary>

Как я могу это сделать?

1 Ответ

0 голосов
/ 30 мая 2019

Привет, во-первых, я хочу ответить, можете ли вы. Ссылка ic_document.xaml Ответ: нет, мы не можем сделать что-то подобное, но мы можем создать стиль в вашем файле XAML и использовать его

Файл ресурса

<Style x:Key="MyIcon" TargetType="Path">
            <Setter Property="Data" Value="F1 M 22,12L 26,12L 26,22L 36,22L 36,26L 26,26L 26,36L 22,36L 22,26L 12,26L 12,22L 22,22L 22,12 Z"></Setter>
            <Setter Property="Fill" Value="#000000"></Setter>
        </Style>

View

 <Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Width="50"
    Height="50">
            <Canvas >
                <Path Style="{StaticResource MyIcon}">
                </Path>
            </Canvas>

Обратите внимание, если у вас несколько тем и вам нужно использовать DynamicResource, вам нужно использовать PathGeometry, чтобы установить его

Файл ресурсов

<PathGeometry x:Key="MyIcon" >
            <PathFigure StartPoint="0,0" >
                <LineSegment Point="0,50"/>
                <LineSegment Point="100,50"/>
                <LineSegment Point="100,20"/>
                <LineSegment Point="80,0"/>
                <LineSegment Point="0,0"/>
            </PathFigure>
        </PathGeometry>

View

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Name="Svg63" Width="50"
    Height="50">
            <Canvas Name="Sf1">
                <Path xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="Path2" Fill="#000000"
          Data="{DynamicResource MyIcon}" />
            </Canvas>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...