WPF制作Logo,很爽,今后在应用程序中加入Logo轻松,省事!

简介: 原文:WPF制作Logo,很爽,今后在应用程序中加入Logo轻松,省事! 这是效果:XAML代码:                                                      ...
原文: WPF制作Logo,很爽,今后在应用程序中加入Logo轻松,省事!

这是效果:
WPF制作LOGO
XAML代码:
<Viewbox Width="723.955078" Height="356.504883"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas Width="723.955078" Height="356.504883">

  <Canvas>

  <Path Fill="#ffb20809" Data="F1 M 162.860840,115.039063 C 162.860840,115.039063 169.997559,89.062988 181.325684,70.918945 C 181.325684,70.918945 197.600098,44.892578 166.387695,48.350098 C 166.387695,48.350098 94.735840,69.039063 31.462891,6.388184 C 31.462891,6.388184 41.367188,66.716309 74.779297,84.832520 C 74.779297,84.832520 42.651855,99.907715 0.000000,79.743652 C 0.000000,79.743652 50.521484,164.243164 145.296387,150.525391 C 145.296387,150.525391 161.794922,119.929688 162.860840,115.039063 Z"/>


  <Path Fill="#ff000000" Data="F1 M 159.818359,126.681152 C 159.818359,126.681152 127.000488,106.073242 163.690430,71.555664 C 163.690430,71.555664 170.563965,67.047852 176.109375,66.357422 C 176.109375,66.357422 183.385742,64.889648 184.948730,60.408691 C 184.948730,60.408691 185.861328,63.644531 180.038086,73.187988 C 180.038086,73.187988 165.294434,105.161621 159.818359,126.681152 Z"/>


  <Path Data="F1 M 297.121094,167.866699 C 297.121094,167.866699 83.615234,145.713379 163.996582,71.029785 C 163.996582,71.029785 133.404297,83.559082 123.446777,125.187988 C 123.446777,125.187988 120.900391,139.875000 114.802246,152.708984 C 114.802246,152.708984 95.689453,199.207031 115.257324,216.106445 C 115.257324,216.106445 161.119629,270.154297 367.779297,259.701172 L 297.121094,167.866699 Z">
    <Path.Fill>
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="122.429199,390.227539" Center="122.429199,390.227539" RadiusX="209.185776" RadiusY="209.185776">
        <RadialGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#fffa0e0b"/>
          <GradientStop Offset="1.000000" Color="#ffc30c09"/>
        </RadialGradientBrush.GradientStops>
        <RadialGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-12.433594,528.179688" />
        </RadialGradientBrush.Transform>
      </RadialGradientBrush>
    </Path.Fill>
  </Path>

  </Canvas>

  <Canvas>


  <Path Fill="#ffb20809" Data="F1 M 561.079102,115.039063 C 561.079102,115.039063 553.943359,89.062988 542.630859,70.918945 C 542.630859,70.918945 526.366211,44.892578 557.551758,48.350098 C 557.551758,48.350098 629.207031,69.039063 692.505859,6.388184 C 692.505859,6.388184 682.602539,66.716309 649.177734,84.832520 C 649.177734,84.832520 681.277344,99.907715 723.955078,79.743652 C 723.955078,79.743652 673.393555,164.243164 578.646484,150.525391 C 578.646484,150.525391 562.158203,119.929688 561.079102,115.039063 Z"/>


  <Path Fill="#ff000000" Data="F1 M 564.124023,126.681152 C 564.124023,126.681152 596.942383,106.073242 560.265625,71.555664 C 560.265625,71.555664 553.407227,67.047852 547.858398,66.357422 C 547.858398,66.357422 540.595703,64.889648 539.006836,60.408691 C 539.006836,60.408691 538.082031,63.644531 543.916992,73.187988 C 543.916992,73.187988 558.658203,105.161621 564.124023,126.681152 Z"/>


  <Path Data="F1 M 426.832031,167.866699 C 426.832031,167.866699 640.354492,145.713379 559.946289,71.029785 C 559.946289,71.029785 590.538086,83.559082 600.523438,125.187988 C 600.523438,125.187988 603.040039,139.875000 609.153320,152.708984 C 609.153320,152.708984 628.263672,199.207031 608.697266,216.106445 C 608.697266,216.106445 562.835938,270.154297 356.175781,259.701172 L 426.832031,167.866699 Z">
    <Path.Fill>
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="-616.956543,390.227539" Center="-616.956543,390.227539" RadiusX="209.185776" RadiusY="209.185776">
        <RadialGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#fffa0e0b"/>
          <GradientStop Offset="1.000000" Color="#ffc30c09"/>
        </RadialGradientBrush.GradientStops>
        <RadialGradientBrush.Transform>
          <MatrixTransform Matrix="-1.000000,0.000000,0.000000,-1.000000,-2.997070,528.179688" />
        </RadialGradientBrush.Transform>
      </RadialGradientBrush>
    </Path.Fill>
  </Path>

  </Canvas>

 
  <Path Data="F1 M 538.691406,178.238770 C 538.691406,276.709961 458.876953,356.504883 360.434570,356.504883 C 261.980469,356.504883 182.181641,276.709961 182.181641,178.238770 C 182.181641,79.796875 261.980469,0.000000 360.434570,0.000000 C 458.876953,0.000000 538.691406,79.796875 538.691406,178.238770 Z">
    <Path.Fill>
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="308.484375,473.705566" Center="308.484375,473.705566" RadiusX="390.049805" RadiusY="390.049805">
        <RadialGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#fffa0e0b"/>
          <GradientStop Offset="1.000000" Color="#ff941106"/>
        </RadialGradientBrush.GradientStops>
        <RadialGradientBrush.Transform>
          <MatrixTransform Matrix="1.000000,0.000000,-0.000000,-1.000000,-12.433594,528.179688" />
        </RadialGradientBrush.Transform>
      </RadialGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data="F1 M 353.123535,14.000000 C 362.762207,22.885254 326.233398,29.904297 291.173340,52.685547 C 254.595215,76.453125 211.233398,120.237793 217.162109,94.837891 C 219.993652,82.706543 235.468750,56.349609 273.026855,34.022949 C 310.561523,11.683105 345.931152,7.369629 353.123535,14.000000 Z">
    <Path.Fill>
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="-342.146484,1143.186523" Center="-342.146484,1143.186523" RadiusX="88.733337" RadiusY="88.733337">
        <RadialGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffffffff"/>
          <GradientStop Offset="1.000000" Color="#fffa0e0b"/>
        </RadialGradientBrush.GradientStops>
        <RadialGradientBrush.Transform>
          <MatrixTransform Matrix="0.859592,-0.511114,-0.265832,-0.447218,875.546936,374.882080" />
        </RadialGradientBrush.Transform>
      </RadialGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data="F1 M 147.585938,83.939941 C 149.398926,82.945313 152.625977,80.687988 147.668457,90.383301 C 145.066406,95.474121 144.805176,103.759766 145.797363,108.980469 C 146.554688,112.966309 148.900391,117.603027 151.976074,121.175781 C 159.041016,129.380371 171.011719,135.176270 168.073242,136.134277 C 163.862793,137.503906 144.171387,130.118164 137.432617,115.419922 C 132.470703,104.594727 143.700195,86.070801 147.585938,83.939941 Z">
    <Path.Fill>
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="-3741.737549,9186.284180" Center="-3741.737549,9186.284180" RadiusX="34.206806" RadiusY="34.206806">
        <RadialGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffffffff"/>
          <GradientStop Offset="1.000000" Color="#fffa0e0b"/>
        </RadialGradientBrush.GradientStops>
        <RadialGradientBrush.Transform>
          <MatrixTransform Matrix="-0.310300,-0.950600,-0.763100,0.249100,5990.499512,-5731.129395" />
        </RadialGradientBrush.Transform>
      </RadialGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Data="F1 M 559.503906,135.066406 C 557.458008,134.767090 552.741211,135.711426 562.163086,129.822754 C 567.009766,126.792969 573.668945,120.925781 576.023438,116.162109 C 577.821289,112.525879 579.345703,106.850098 579.043945,102.145020 C 578.352539,91.339355 570.428711,80.135742 573.351563,81.142578 C 577.537109,82.586426 590.966797,98.132324 587.484375,113.923340 C 584.921875,125.550781 563.888672,135.707520 559.503906,135.066406 Z">
    <Path.Fill>
      <RadialGradientBrush MappingMode="Absolute" GradientOrigin="7027.560547,8092.562988" Center="7027.560547,8092.562988" RadiusX="34.960037" RadiusY="34.960037">
        <RadialGradientBrush.GradientStops>
          <GradientStop Offset="0.000000" Color="#ffffffff"/>
          <GradientStop Offset="1.000000" Color="#fffa0e0b"/>
        </RadialGradientBrush.GradientStops>
        <RadialGradientBrush.Transform>
          <MatrixTransform Matrix="-0.325300,0.945600,0.759100,0.261100,-3274.685547,-8643.197266" />
        </RadialGradientBrush.Transform>
      </RadialGradientBrush>
    </Path.Fill>
  </Path>

 
  <Path Fill="#ffffffff" Data="F1 M 332.562012,130.795410 C 332.562012,137.905762 338.575195,143.691895 345.965820,143.691895 C 353.450195,143.691895 359.539063,137.905762 359.539063,130.795410 C 359.539063,123.682129 353.450195,117.896484 345.965820,117.896484 C 338.575195,117.896484 332.562012,123.682129 332.562012,130.795410 Z M 395.780273,260.505859 C 399.307617,265.100586 401.208984,269.440430 401.208984,270.773438 C 401.208984,270.806641 401.206055,270.833008 401.201660,270.862305 C 400.583984,271.784180 398.885254,272.769531 396.399902,272.916016 C 392.776855,273.164063 388.970703,271.638672 385.263672,268.639648 C 389.189941,266.023438 392.664063,263.333984 395.780273,260.505859 Z M 411.919922,242.664063 C 413.064453,244.597656 413.687500,246.365234 413.687500,247.754883 C 413.687500,247.987305 413.672852,248.209961 413.635742,248.421875 C 413.561523,248.855469 413.391602,249.876953 411.552734,250.927734 C 408.576660,252.629883 405.977539,253.311523 404.030762,252.908203 C 403.856934,252.862305 403.781250,252.812500 403.638184,252.764648 C 406.593750,249.559570 409.378906,246.153320 411.919922,242.664063 Z M 423.230469,98.601074 C 423.929688,100.076660 424.235352,101.547852 424.235352,102.988770 C 424.235352,108.899414 419.126953,114.322266 414.984375,117.760742 C 407.344727,110.357910 397.887695,104.565430 386.745117,100.534180 C 400.806641,95.212891 420.015625,91.812012 423.230469,98.601074 Z M 341.924316,109.488770 C 408.547852,109.488770 418.495117,148.910156 418.495117,172.411133 C 418.495117,192.549805 410.253906,216.413086 396.982910,234.685547 C 381.686523,255.750000 361.594727,267.349609 340.406250,267.349609 C 320.501465,267.349609 307.641113,247.147461 307.641113,215.883301 C 307.641113,206.629883 309.008789,195.238770 309.858887,189.798340 C 336.371582,191.532715 351.081543,182.003906 357.538574,176.062012 C 363.759277,170.338379 367.625488,163.191406 367.625488,157.416504 C 367.625488,152.812500 363.803711,149.066406 359.107422,149.066406 C 354.613770,149.066406 350.730469,152.344238 350.266113,156.528809 C 349.663574,165.235840 337.572266,176.715820 312.619141,176.257813 C 316.364746,162.668945 321.487793,150.072266 324.952148,141.587402 L 327.958496,134.043457 L 327.971680,133.961914 C 328.198242,133.057617 328.198242,132.063477 328.198242,131.467773 C 328.198242,126.957520 324.377441,123.288086 319.681641,123.288086 C 316.164551,123.288086 312.928711,125.625000 311.625000,129.101563 C 303.240723,148.429199 298.590332,165.729492 297.093262,171.749023 C 292.662109,169.647461 282.435547,163.401367 282.435547,150.506836 C 282.435547,149.800293 282.466797,149.069336 282.530762,148.321777 C 284.240723,129.022949 305.191406,109.488770 341.924316,109.488770 Z M 373.029297,96.801758 C 363.943848,94.828125 354.137695,93.801758 343.102051,93.801758 C 343.102051,93.801758 342.695313,93.825195 342.290039,93.851074 C 342.284180,93.519043 342.262695,93.240234 342.262695,92.891602 C 342.262695,85.362793 343.806641,74.022461 349.313477,73.595215 C 357.294434,73.045410 368.605469,88.309082 373.029297,96.801758 Z M 347.852539,57.242188 L 347.823730,57.243652 C 341.354492,57.798828 329.964355,61.499512 326.364258,80.043945 C 325.403320,84.851563 325.163574,89.583496 325.163574,92.899414 C 325.163574,93.825195 325.184570,94.618652 325.209473,95.294922 C 289.776367,100.624023 265.163574,122.151855 265.163574,148.149902 C 265.163574,166.676758 275.629883,180.358887 293.230957,185.124023 C 292.051758,192.852051 290.944824,204.499023 290.944824,214.872070 C 290.944824,246.083008 303.810059,282.532227 340.068848,282.532227 C 352.777832,282.532227 364.820801,279.647461 375.909180,274.015625 C 382.201660,280.336914 389.687012,283.553711 397.155762,283.033203 C 402.915527,282.648438 407.833008,280.039063 410.300781,276.049805 C 411.259766,274.535156 411.740234,272.826172 411.740234,270.914063 C 411.740234,268.514648 410.953125,265.776367 409.440430,262.693359 C 411.697266,262.163086 414.127930,261.199219 416.827148,259.712891 C 420.980469,257.341797 423.468750,253.938477 424.051758,249.857422 C 424.134766,249.240234 424.171875,248.622070 424.171875,248.009766 C 424.171875,241.726563 420.102539,235.888672 418.078125,233.363281 C 429.374023,214.392090 435.868164,192.267578 435.868164,172.411133 C 435.868164,156.902832 432.150391,142.634277 425.170898,130.961914 C 427.333984,129.275879 430.081055,126.906250 432.840820,123.840820 C 438.537109,117.098145 441.407227,110.140625 441.407227,103.265137 C 441.407227,99.422363 440.510742,95.605957 438.705078,91.868164 C 435.126953,83.984375 425.700195,75.400879 401.248047,79.506348 C 394.962891,80.606445 389.053711,82.395020 385.046875,83.668457 C 376.708984,70.696289 363.724609,56.133301 347.852539,57.242188 Z"/>

</Canvas>
</Viewbox>

注:这个效果是曾经是使用Adobe Illustrator设计的,现在改用MS Expression Blend或Designer均可轻松实现。
在此之前,我曾经在GDI+中为画这个LOGO需要费很大的功夫(比如:在GDI+中,圆中间那个“萝卜鼠”的LOGO需要使用GraphicsPath及路径的组合),现在有了XAML,完全由设计工具自己来完成,省去了大量的C#编码。整个过程轻松搞掂了,这就是技术进步带来的好处了:)

目录
相关文章
|
前端开发 Ubuntu Linux
【.NET6+Avalonia】开发支持跨平台的仿WPF应用程序以及基于ubuntu系统的演示
随着跨平台越来越流行,.net core支持跨平台至今也有好几年的光景了。但是目前基于.net的跨平台,大多数还是在使用B/S架构的跨平台上;至于C/S架构,大部分人可能会选择QT进行开发,或者很早之前还有一款Mono可以支持.NET开发者进行开发跨平台应用。
1381 0
【.NET6+Avalonia】开发支持跨平台的仿WPF应用程序以及基于ubuntu系统的演示
|
C# 开发者 Windows
WPF 应用程序开发:一分钟入门
本文介绍 Windows Presentation Foundation (WPF),这是一种用于构建高质量、可缩放的 Windows 桌面应用程序的框架,支持 XAML 语言,方便 UI 设计与逻辑分离。文章涵盖 WPF 基础概念、代码示例,并深入探讨常见问题及解决方案,包括数据绑定、控件样式与模板、布局管理等方面,帮助开发者高效掌握 WPF 开发技巧。
341 65
|
前端开发 C# 开发者
WPF开发者必读:MVVM模式实战,轻松构建可维护的应用程序,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,MVVM(Model-View-ViewModel)模式通过分离关注点,提高了代码的可维护性和可扩展性。本文详细介绍了MVVM模式的三个核心组件:Model(数据模型)、View(用户界面)和ViewModel(处理数据绑定与逻辑),并通过示例代码展示了如何在WPF项目中实现MVVM模式。通过这种模式,开发者可以更高效地构建桌面应用程序。希望本文能帮助你在WPF开发中更好地应用MVVM模式。
709 1
|
C# 微服务 Windows
模块化革命:揭秘WPF与微服务架构的完美融合——从单一职责原则到事件聚合器模式,构建高度解耦与可扩展的应用程序
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中借鉴微服务架构思想,实现模块化设计。通过将WPF应用分解为独立的功能模块,并利用事件聚合器实现模块间解耦通信,可以有效提升开发效率和系统可维护性。文中还提供了具体示例代码,展示了如何使用事件聚合器进行模块间通信,以及如何利用依赖注入进一步提高模块解耦程度。此方法不仅有助于简化复杂度,还能使应用更加灵活易扩展。
303 0
|
测试技术 C# 开发者
“代码守护者:详解WPF开发中的单元测试策略与实践——从选择测试框架到编写模拟对象,全方位保障你的应用程序质量”
【8月更文挑战第31天】单元测试是确保软件质量的关键实践,尤其在复杂的WPF应用中更为重要。通过为每个小模块编写独立测试用例,可以验证代码的功能正确性并在早期发现错误。本文将介绍如何在WPF项目中引入单元测试,并通过具体示例演示其实施过程。首先选择合适的测试框架如NUnit或xUnit.net,并利用Moq模拟框架隔离外部依赖。接着,通过一个简单的WPF应用程序示例,展示如何模拟`IUserRepository`接口并验证`MainViewModel`加载用户数据的正确性。这有助于确保代码质量和未来的重构与扩展。
645 0
|
C# 开发者 Windows
震撼发布:全面解析WPF中的打印功能——从基础设置到高级定制,带你一步步实现直接打印文档的完整流程,让你的WPF应用程序瞬间升级,掌握这一技能,轻松应对各种打印需求,彻底告别打印难题!
【8月更文挑战第31天】打印功能在许多WPF应用中不可或缺,尤其在需要生成纸质文档时。WPF提供了强大的打印支持,通过`PrintDialog`等类简化了打印集成。本文将详细介绍如何在WPF应用中实现直接打印文档的功能,并通过具体示例代码展示其实现过程。
1146 0
|
开发者 C# 自然语言处理
WPF开发者必读:掌握多语言应用程序开发秘籍,带你玩转WPF国际化支持!
【8月更文挑战第31天】随着全球化的加速,开发多语言应用程序成为趋势。WPF作为一种强大的图形界面技术,提供了优秀的国际化支持,包括资源文件存储、本地化处理及用户界面元素本地化。本文将介绍WPF国际化的实现方法,通过示例代码展示如何创建和绑定资源文件,并设置应用程序语言环境,帮助开发者轻松实现多语言应用开发,满足不同地区用户的需求。
304 0
|
开发者 C# UED
WPF多窗口应用程序开发秘籍:掌握窗口创建、通信与管理技巧,轻松实现高效多窗口协作!
【8月更文挑战第31天】在WPF应用开发中,多窗口设计能显著提升用户体验与工作效率。本文详述了创建新窗口的多种方法,包括直接实例化`Window`类、利用`Application.Current.MainWindow`及自定义方法。针对窗口间通信,介绍了`Messenger`类、`DataContext`共享及`Application`类的应用。此外,还探讨了布局控件与窗口管理技术,如`StackPanel`与`DockPanel`的使用,并提供了示例代码展示如何结合`Messenger`类实现窗口间的消息传递。总结了多窗口应用的设计要点,为开发者提供了实用指南。
841 0
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
400 0
|
开发者 C# Windows
WPF布局大揭秘:掌握布局技巧,轻松创建响应式用户界面,让你的应用程序更上一层楼!
【8月更文挑战第31天】在现代软件开发中,响应式用户界面至关重要。WPF(Windows Presentation Foundation)作为.NET框架的一部分,提供了丰富的布局控件和机制,便于创建可自动调整的UI。本文介绍WPF布局的基础概念与实现方法,包括`StackPanel`、`DockPanel`、`Grid`等控件的使用,并通过示例代码展示如何构建响应式布局。了解这些技巧有助于开发者优化用户体验,适应不同设备和屏幕尺寸。
469 0