如何使用Syncfusion Metro Studio生成的XAML词典

Dir*_*ter 2 c# wpf syncfusion resourcedictionary

为了解决分辨率,我们需要缩放艺术 好的,因此堆栈中提到的常见来源是Syncfusion Metro Studio.

Metro Studio 2为XAML生成:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Viewbox x:Key="error">
    <Grid Width="64" Height="64" Visibility="Visible">
      <Grid Visibility="Visible">
        <Rectangle Fill="#FFD21818" Visibility="Visible" />
        <Ellipse Fill="#FFD21818" Visibility="Collapsed" />
        <Path Data="M50.5,4.7500001C25.232973,4.75 4.75,25.232973 4.7500001,50.5 4.75,75.767029 25.232973,96.25 50.5,96.25 75.767029,96.25 96.25,75.767029 96.25,50.5 96.25,25.232973 75.767029,4.75 50.5,4.7500001z M50.5,0C78.390381,0 101,22.609621 101,50.5 101,78.390381 78.390381,101 50.5,101 22.609621,101 0,78.390381 0,50.5 0,22.609621 22.609621,0 50.5,0z" Stretch="Fill" Fill="#FFD21818" Visibility="Collapsed" />
      </Grid>
      <Path Data="F1M54.0573,47.8776L38.1771,31.9974 54.0547,16.1198C55.7604,14.4141 55.7604,11.6511 54.0573,9.94531 52.3516,8.23962 49.5859,8.23962 47.8802,9.94531L32.0026,25.8229 16.1224,9.94531C14.4167,8.23962 11.6511,8.23962 9.94794,9.94531 8.24219,11.6511 8.24219,14.4141 9.94794,16.1198L25.8255,32 9.94794,47.8776C8.24219,49.5834 8.24219,52.3477 9.94794,54.0534 11.6511,55.7572 14.4167,55.7585 16.1224,54.0534L32.0026,38.1745 47.8802,54.0534C49.5859,55.7585 52.3516,55.7572 54.0573,54.0534 55.7604,52.3477 55.763,49.5834 54.0573,47.8776z" Stretch="Uniform" Fill="#FFFFFFFF" Width="36" Height="36" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
        <Path.RenderTransform>
          <TransformGroup>
            <TransformGroup.Children>
              <RotateTransform Angle="0" />
              <ScaleTransform ScaleX="1" ScaleY="1" />
            </TransformGroup.Children>
          </TransformGroup>
        </Path.RenderTransform>
      </Path>
    </Grid>
  </Viewbox>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好,只需将其合并到项目资源中.但是如何消费呢?

在ResourceDictionary文件中使用viewbox有一个答案,可以让你在ResourceDictionary中将ViewBox更改为DataTemplate,然后使用转换器将其显示为按钮的ContentTemplate.对于基于Button的东西来说这没关系,但是如果我只需要图标本身呢?我如何从资源字典中的ViewBox转到某种方式将它包含在XAML中的网格中?

WPF*_*ser 5

您可以直接将它用作任何ContentControl的内容,如果您只想要Grid中的图标,请尝试如下,

 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Viewbox x:Key="error">
    <Grid Width="64" Height="64" Visibility="Visible">
      <Grid Visibility="Visible">
        <Rectangle Fill="#FFD21818" Visibility="Visible" />
        <Ellipse Fill="#FFD21818" Visibility="Collapsed" />
        <Path Data="M50.5,4.7500001C25.232973,4.75 4.75,25.232973 4.7500001,50.5 4.75,75.767029 25.232973,96.25 50.5,96.25 75.767029,96.25 96.25,75.767029 96.25,50.5 96.25,25.232973 75.767029,4.75 50.5,4.7500001z M50.5,0C78.390381,0 101,22.609621 101,50.5 101,78.390381 78.390381,101 50.5,101 22.609621,101 0,78.390381 0,50.5 0,22.609621 22.609621,0 50.5,0z" Stretch="Fill" Fill="#FFD21818" Visibility="Collapsed" />
      </Grid>
      <Path Data="F1M54.0573,47.8776L38.1771,31.9974 54.0547,16.1198C55.7604,14.4141 55.7604,11.6511 54.0573,9.94531 52.3516,8.23962 49.5859,8.23962 47.8802,9.94531L32.0026,25.8229 16.1224,9.94531C14.4167,8.23962 11.6511,8.23962 9.94794,9.94531 8.24219,11.6511 8.24219,14.4141 9.94794,16.1198L25.8255,32 9.94794,47.8776C8.24219,49.5834 8.24219,52.3477 9.94794,54.0534 11.6511,55.7572 14.4167,55.7585 16.1224,54.0534L32.0026,38.1745 47.8802,54.0534C49.5859,55.7585 52.3516,55.7572 54.0573,54.0534 55.7604,52.3477 55.763,49.5834 54.0573,47.8776z" Stretch="Uniform" Fill="#FFFFFFFF" Width="36" Height="36" Margin="0,0,0,0" RenderTransformOrigin="0.5,0.5">
        <Path.RenderTransform>
          <TransformGroup>
            <TransformGroup.Children>
              <RotateTransform Angle="0" />
              <ScaleTransform ScaleX="1" ScaleY="1" />
            </TransformGroup.Children>
          </TransformGroup>
        </Path.RenderTransform>
      </Path>
    </Grid>
  </Viewbox>
</ResourceDictionary>


<Grid>
  <ContentControl Content="{StaticResource error}"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

如果您打算在多个位置使用相同的资源,请将x:Shared属性设置为false,如下所示,

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Viewbox x:shared="false" x:Key="error">
         .......
      </Viewbox>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)