• WPF Geometry 引用Path数据


    当图片转svg,svg转Xaml后,根据数据加载显示图片

    DrawingImage:

     1     <DrawingImage x:Key="Image.Search">
     2         <DrawingImage.Drawing>
     3             <GeometryDrawing>
     4                 <GeometryDrawing.Brush>
     5                     <SolidColorBrush Color="#FF666666" Opacity="0.5" />
     6                 </GeometryDrawing.Brush>
     7                 <GeometryDrawing.Geometry>
     8                     <PathGeometry FillRule="Nonzero"
     9                               Figures="M6.5,2C4.01471853256226,2 2,4.01471853256226 1.99999988079071,6.5 2,8.98528099060059 4.01471853256226,11 6.5,11 8.98528099060059,11 11,8.98528099060059 11,6.5 11,4.01471853256226 8.98528099060059,2 6.5,2z M6.5,1.00000011920929C9.53756618499756,1 12,3.46243381500244 12,6.5 12,7.65749835968018 11.6424360275269,8.73148345947266 11.03173828125,9.61752414703369L13.9562683105469,12.5420551300049C14.3431911468506,12.9289779663086 14.3429946899414,13.5565004348755 13.9497470855713,13.9497470855713 13.5592231750488,14.3402719497681 12.923752784729,14.3379669189453 12.5420551300049,13.9562683105469L9.61752414703369,11.03173828125C8.73148345947266,11.6424360275269 7.65749835968018,12 6.5,12 3.46243381500244,12 1,9.53756618499756 0.999999940395355,6.5 1,3.46243381500244 3.46243381500244,1 6.5,1.00000011920929z" />
    10                 </GeometryDrawing.Geometry>
    11             </GeometryDrawing>
    12         </DrawingImage.Drawing>
    13     </DrawingImage>

    也有可能,同时也需要Geometry:

    1     <StreamGeometry x:Key="Path.Stream.Search">
    2         M6.5,2C4.01471853256226,2 2,4.01471853256226 1.99999988079071,6.5 2,8.98528099060059 4.01471853256226,11 6.5,11 8.98528099060059,11 11,8.98528099060059 11,6.5 11,4.01471853256226 8.98528099060059,2 6.5,2z M6.5,1.00000011920929C9.53756618499756,1 12,3.46243381500244 12,6.5 12,7.65749835968018 11.6424360275269,8.73148345947266 11.03173828125,9.61752414703369L13.9562683105469,12.5420551300049C14.3431911468506,12.9289779663086 14.3429946899414,13.5565004348755 13.9497470855713,13.9497470855713 13.5592231750488,14.3402719497681 12.923752784729,14.3379669189453 12.5420551300049,13.9562683105469L9.61752414703369,11.03173828125C8.73148345947266,11.6424360275269 7.65749835968018,12 6.5,12 3.46243381500244,12 1,9.53756618499756 0.999999940395355,6.5 1,3.46243381500244 3.46243381500244,1 6.5,1.00000011920929z
    3     </StreamGeometry>

    如何将俩种引用方式,提取Path数据重用?

    StreamGeometry不行, 没有相应的属性可以支持。。。。

    所以我们换个Geomery,虽然没有StreamGeometry性能好。。。

     同时,使用PathFigureCollection装载Path数据,然后PathGeometry、DrawingImage 引用资源。

     1     <PathFigureCollection x:Key="PathData">M6.5,2C4.01471853256226,2 2,4.01471853256226 1.99999988079071,6.5 2,8.98528099060059 4.01471853256226,11 6.5,11 8.98528099060059,11 11,8.98528099060059 11,6.5 11,4.01471853256226 8.98528099060059,2 6.5,2z M6.5,1.00000011920929C9.53756618499756,1 12,3.46243381500244 12,6.5 12,7.65749835968018 11.6424360275269,8.73148345947266 11.03173828125,9.61752414703369L13.9562683105469,12.5420551300049C14.3431911468506,12.9289779663086 14.3429946899414,13.5565004348755 13.9497470855713,13.9497470855713 13.5592231750488,14.3402719497681 12.923752784729,14.3379669189453 12.5420551300049,13.9562683105469L9.61752414703369,11.03173828125C8.73148345947266,11.6424360275269 7.65749835968018,12 6.5,12 3.46243381500244,12 1,9.53756618499756 0.999999940395355,6.5 1,3.46243381500244 3.46243381500244,1 6.5,1.00000011920929z</PathFigureCollection>
     2     <PathGeometry x:Key="Path.Search" Figures="{StaticResource PathData}"/>
     3     <DrawingImage x:Key="Image.Search">
     4         <DrawingImage.Drawing>
     5             <GeometryDrawing>
     6                 <GeometryDrawing.Brush>
     7                     <SolidColorBrush Color="#FF666666" Opacity="0.5" />
     8                 </GeometryDrawing.Brush>
     9                 <GeometryDrawing.Geometry>
    10                     <PathGeometry FillRule="Nonzero"
    11                               Figures="{StaticResource PathData}" />
    12                 </GeometryDrawing.Geometry>
    13             </GeometryDrawing>
    14         </DrawingImage.Drawing>
    15     </DrawingImage>

    显示效果:

     1 <Window x:Class="WpfApp8.MainWindow"
     2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     4         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     5         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     6         xmlns:local="clr-namespace:WpfApp8"
     7         xmlns:sys="clr-namespace:System;assembly=mscorlib"
     8         mc:Ignorable="d"
     9         Title="MainWindow" Height="450" Width="800">
    10     <Window.Resources>
    11         <StreamGeometry x:Key="Path.Stream.Search">
    12             M6.5,2C4.01471853256226,2 2,4.01471853256226 1.99999988079071,6.5 2,8.98528099060059 4.01471853256226,11 6.5,11 8.98528099060059,11 11,8.98528099060059 11,6.5 11,4.01471853256226 8.98528099060059,2 6.5,2z M6.5,1.00000011920929C9.53756618499756,1 12,3.46243381500244 12,6.5 12,7.65749835968018 11.6424360275269,8.73148345947266 11.03173828125,9.61752414703369L13.9562683105469,12.5420551300049C14.3431911468506,12.9289779663086 14.3429946899414,13.5565004348755 13.9497470855713,13.9497470855713 13.5592231750488,14.3402719497681 12.923752784729,14.3379669189453 12.5420551300049,13.9562683105469L9.61752414703369,11.03173828125C8.73148345947266,11.6424360275269 7.65749835968018,12 6.5,12 3.46243381500244,12 1,9.53756618499756 0.999999940395355,6.5 1,3.46243381500244 3.46243381500244,1 6.5,1.00000011920929z
    13         </StreamGeometry>
    14 
    15     <PathFigureCollection x:Key="PathData">M6.5,2C4.01471853256226,2 2,4.01471853256226 1.99999988079071,6.5 2,8.98528099060059 4.01471853256226,11 6.5,11 8.98528099060059,11 11,8.98528099060059 11,6.5 11,4.01471853256226 8.98528099060059,2 6.5,2z M6.5,1.00000011920929C9.53756618499756,1 12,3.46243381500244 12,6.5 12,7.65749835968018 11.6424360275269,8.73148345947266 11.03173828125,9.61752414703369L13.9562683105469,12.5420551300049C14.3431911468506,12.9289779663086 14.3429946899414,13.5565004348755 13.9497470855713,13.9497470855713 13.5592231750488,14.3402719497681 12.923752784729,14.3379669189453 12.5420551300049,13.9562683105469L9.61752414703369,11.03173828125C8.73148345947266,11.6424360275269 7.65749835968018,12 6.5,12 3.46243381500244,12 1,9.53756618499756 0.999999940395355,6.5 1,3.46243381500244 3.46243381500244,1 6.5,1.00000011920929z</PathFigureCollection>
    16     <PathGeometry x:Key="Path.Search" Figures="{StaticResource PathData}"/>
    17     <DrawingImage x:Key="Image.Search">
    18         <DrawingImage.Drawing>
    19             <GeometryDrawing>
    20                 <GeometryDrawing.Brush>
    21                     <SolidColorBrush Color="#FF666666" Opacity="0.5" />
    22                 </GeometryDrawing.Brush>
    23                 <GeometryDrawing.Geometry>
    24                     <PathGeometry FillRule="Nonzero"
    25                               Figures="{StaticResource PathData}" />
    26                 </GeometryDrawing.Geometry>
    27             </GeometryDrawing>
    28         </DrawingImage.Drawing>
    29     </DrawingImage>
    30     </Window.Resources>
    31     <Grid>
    32         <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
    33             <Path Fill="Red" Data="{StaticResource Path.Stream.Search}"/>
    34             <Path Fill="Red" Data="{StaticResource Path.Search}"/>
    35             <Image Source="{StaticResource Image.Search}" Margin="0 10 0 0" Stretch="None"></Image>
    36         </StackPanel>
    37     </Grid>
    38 </Window>
    View Code

  • 相关阅读:
    2015 多校联赛 ——HDU5319(模拟)
    FZU 2158
    FZU 2157 树形DP
    dp之背包总结篇
    JavaScript parseInt() 函数
    JavaScript全局属性/函数
    学生面试心得
    ssh整合
    spring08事务
    JavaScript数组方法大全
  • 原文地址:https://www.cnblogs.com/kybs0/p/10675597.html
Copyright © 2020-2023  润新知