使用WPF绘制图片(一)

<Viewbox Width="348.553711" Height="345.027832"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas Width="348.553711" Height="345.027832">

  <Canvas>
  <Path Data=" M 166.979980,0.072754 C 177.454590,3.563965 187.428711,7.196777 197.354980,12.048828 C 186.879883,8.557129 177.160156,4.276855 166.979980,0.072754">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="206.919434,656.222168" EndPoint="195.395905,676.181519">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 260.534180,223.114746 C 265.394531,224.793457 270.254883,226.472168 275.115723,228.150879 C 254.294922,206.899902 233.473145,185.648926 212.652344,164.397461 C 199.968262,151.451660 187.284180,138.505371 174.600098,125.559570 C 171.822266,122.724121 169.043945,119.888672 166.266113,117.053223 C 163.188477,113.912598 155.187012,113.056641 151.009277,111.680664 C 187.517578,148.825195 224.025879,185.970215 260.534180,223.114746">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="268.759766,438.768555" EndPoint="195.437637,565.766174">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 151.009277,111.680664 C 153.096680,112.368164 164.743164,117.559570 165.968750,116.333984 C 170.215820,112.087402 174.462891,107.840332 178.709473,103.593262 C 188.511719,93.791504 198.313965,83.989746 208.115723,74.187988 C 206.027832,73.500000 194.381836,68.308105 193.156250,69.533691 C 188.909180,73.780762 184.662598,78.027344 180.415039,82.274414 C 170.613281,92.076660 160.811035,101.878418 151.009277,111.680664">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="213.973145,552.619629" EndPoint="182.885605,606.464844">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 193.362305,69.327637 C 198.280273,70.947754 203.197754,72.567871 208.115723,74.187988 C 201.068359,67.048828 194.020508,59.909668 186.973145,52.770508 C 180.812500,46.529785 175.480469,45.258301 166.979980,42.424316 C 175.774414,51.392090 184.568359,60.359863 193.362305,69.327637">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="217.441895,595.070801" EndPoint="195.749924,632.642395">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 78.629883,186.317383 C 83.464355,187.910645 88.298828,189.504395 93.132813,191.097656 C 94.256836,191.467773 99.475098,184.811523 100.272461,183.978516 C 108.274902,175.616699 116.276367,167.254395 124.278809,158.892578 C 119.444336,157.243164 114.609863,155.593750 109.775879,153.944336 C 108.672363,153.567871 103.422852,160.272461 102.635742,161.099121 C 94.633789,169.505371 86.631836,177.911621 78.629883,186.317383">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="132.348633,479.038574" EndPoint="107.646286,521.824280">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 121.849121,278.832520 C 126.767090,280.452637 131.685059,282.071777 136.603027,283.690918 C 118.035645,279.447754 101.201172,271.685059 84.973633,261.853516 C 76.700684,256.842285 69.117676,250.454590 61.842285,244.118164 C 58.307129,241.040039 54.802734,235.968262 50.856445,233.530273 C 46.796387,231.022461 40.807617,230.061035 36.276855,228.496582 C 59.886230,252.886230 88.618652,271.013672 121.849121,278.832520">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="127.011230,378.789063" EndPoint="82.923027,455.152069">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 28.813965,287.858887 C 33.673828,289.479004 38.533691,291.099121 43.393555,292.718262 C 37.777344,291.301270 31.753906,289.070801 26.035645,287.164551 C 27.019531,287.317871 27.854492,287.580566 28.813965,287.858887">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="56.084961,378.198242" EndPoint="49.974094,388.782562">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 21.696777,339.756348 C 27.350098,341.684082 34.117676,345.572754 40.269531,344.963379 C 34.147949,342.924316 28.139160,340.274902 21.696777,339.756348">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="52.950195,324.746094" EndPoint="46.740662,335.501312">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data=" M 25.687500,340.104980 C 38.511719,344.378418 48.198242,347.613770 58.839844,337.326660 C 62.217285,334.062012 64.698242,330.041504 65.959473,325.524902 C 66.209961,324.626465 67.501953,319.150879 66.576660,318.846191 C 61.742676,317.253418 56.908203,315.659668 52.073730,314.066895 C 51.935059,328.373535 39.889160,339.881348 25.687500,340.104980">
    <Path.Fill>
      <LinearGradientBrush MappingMode="Absolute" StartPoint="75.322266,325.193359" EndPoint="54.014801,362.098969">
        <LinearGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffff0000"/>
          <GradientStop Offset="0.490000" Color="#ffffff00"/>
          <GradientStop Offset="1.000000" Color="#ffff0000"/>
        </LinearGradientBrush.GradientStops>
        <LinearGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-18.876953,672.458496" />
        </LinearGradientBrush.Transform>
      </LinearGradientBrush>
    </Path.Fill>
  </Path>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF使用 Teigha 插入图片可以通过以下步骤实现: 1. 首先,确保你已经安装了 Teigha.NET 控件,可以从 Teigha 官网下载并安装。 2. 在 WPF 项目中添加对 Teigha.NET 控件的引用。在 Visual Studio 中右键点击项目,选择“添加” -> “引用”,然后浏览到 Teigha.NET 控件的安装目录,选择相应的 DLL 文件进行引用。 3. 在 XAML 文件中添加一个 Image 控件来显示图片,例如: ```xaml <Image x:Name="imageControl" /> ``` 4. 在代码中使用 Teigha.NET 控件来加载和显示图片。首先,需要创建一个 Document 对象,并加载图片文件: ```csharp using Teigha.Runtime; using Teigha.DatabaseServices; using Teigha.GraphicsSystem; // ... private void LoadImage(string imagePath) { // 初始化 Teigha HostApplicationServices.Initialize(); // 创建 Document 对象 using (var doc = new Document(false)) { doc.Database.ReadDwgFile(imagePath, FileOpenMode.OpenForReadAndAllShare, false, null); // 获取 ModelSpace 块表记录 var modelSpace = (BlockTableRecord)TransactionHelper.GetModelSpace(doc.Database); // 获取第一个实体 var entity = modelSpace.Cast<ObjectId>().Select(id => id.GetObject(OpenMode.ForRead)).FirstOrDefault(); if (entity != null && entity is Entity) { // 使用 Teigha.GraphicsSystem 控件绘制实体 using (var image = new Image()) { var graphics = GraphicsSystemFactory.CreateGraphics(image, true); graphics.SetLogicalWindow(new Extents2d(0, 100, 0, 100)); graphics.SetViewParameters(Point2d.Origin, 1.0, 0); entity.Draw(graphics); // 将绘制的图像转换为 WPF 图像 var wpfImage = new System.Windows.Media.Imaging.BitmapImage(); wpfImage.BeginInit(); wpfImage.StreamSource = new MemoryStream(image.GetBitmap()); wpfImage.EndInit(); // 在 Image 控件中显示图像 imageControl.Source = wpfImage; } } } } ``` 在上述代码中,`imagePath` 是图片文件的路径。代码会加载图片文件,获取第一个实体并使用 Teigha.GraphicsSystem 控件绘制实体。然后,将绘制的图像转换为 WPF 图像,并在 Image 控件中显示。 请注意,在使用 Teigha.NET 控件之前,需要初始化 Teigha,可以使用 `HostApplicationServices.Initialize()` 方法进行初始化。 希望这可以帮助到你!如果你有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值