设计文件转曲转path

设计文件转曲转path,第1张

     在软件开发过程中,图形元素必不可少,而在WPF中如果使用jpg或png等格式,在应用到Button等控件时的样式时,常常需要做MouseEnter,MouseDown鼠标事件提供不同的颜色或特效。一个图标得分别生成三种颜色才行。如下:

        Normal:

      MouseEnter:

       MouseDown:

且jpg与png等文件,如果生成大尺寸应用于小的图标会产生锯齿,如果生成小尺寸应用于大的图标则会模糊。

        所以,最佳的方式是使用系统能直接识别的特殊符号,如✎❤等,可以拷贝到控件的Content或Text等属性中直接使用,在Trigger或事件中更改Foreground即可,且它在WPF渲染中是矢量的,不必担心它会产生锯齿或模糊等问题。但是系统能直接识别的图标只有部分且对于其它第三方图形它就无能为力了。所以对于第三方的图形,最好的解决方式是将图形转化为Path数据,可在Path控件中使用。

   开始

方式1:

网上查找图标直接复制数据,适用于现有图形Path数据;若只是没有Path数据,请看方式2。

推荐一个非常不错的图标网站阿里的iconfont,下面以这个图标网站为示例获取Path的数据 。

链接-> iconfont

 1 进入搜索找到想要的图标(注意,某些图标只是帖个,这种不是Path数据的无法获取,必须找图标是Path数据的)。然后点击下载按钮。

2在新的窗体中,按F12调出查看网页代码。当前在火狐浏览器为例,点击选取页面元素按钮后,鼠标移动到图标并点击,选择图标元素。

注意,选中的元素可能有多个嵌套,选中后下方代码出现Path的那个才是正确的。

3双击该段代码,将d=""里面的数据选中并拷贝到Geometry资源中:

4资源调用:

方式2:

没有Path数据 ,只有的将图形元素转换成Path数据直接在项目中引用。

使用的工具有:

        1VisualStudio

        2Photoshop

        3Microsoft Expression Design 4

       接下来,跟着我一步步 *** 作即可:

1 将要转换的图标文件导入Photoshop,然后选择快速选择工具:

2鼠标点击选中要转换的图形,如图中4个方框就是:

3右键选中的图形,选择建立工具路径,后面d出窗口设置容差,可根据图形的精度决定。

 4在 路径 选项卡可以看到刚刚添加的工作路径,点击添加图层蒙版

 

5在属性选项卡中点击选择矢量蒙版。此时在图层中可以看到有图层、图层蒙版和矢量蒙版三个。

6依次点击 文件--> 存储为  将文件将文件导出为psd文件。

 Photoshop的处理到此结束 ,接下来是使用Microsoft Expression Design 4将psd文件转换为Path

7 在Microsoft Expression Design 4中打开刚刚生成的psd文件,直接按Ctrl+E导出,格式选择XAML WPF资源字典

  打开刚刚生成的xaml文件,将引号内的Clip或ClipGeometry的数据复制(字符可能非常长如果对精度要求不是那么高,可以后面写个方法把小数点后的值去掉),在Path的Data属性中粘贴。

   效果图

  最后

       有比较简单的图形还是可以在Microsoft Expression Design 4中画出来,画的图形会比PS抠的精准,在PS中如果抠不好可能导致图形面目全非。

还有一种方式是直接在PS中生成Path数据,复制数据后做修改,有喜欢这种方式的试试吧

如何通过PS选取获取WPF路径 - 走看看

 

wpf

c#

ui设计

天水盛凡专利代办:专利申请价格全透明,无隐性收费!

盛凡知识产权

广告

JPG,PNG等格式的转换的ICON保存为ICO文件

449阅读·0评论·0点赞

2011年11月6日

WPF学习之绘图和动画

56W阅读·17评论·37点赞

2012年11月13日

Note插件式开发中WPF的ICON修改方法

34阅读·0评论·2点赞

2022年12月21日

WPF获得PNG外观Path数据

9811阅读·8评论·0点赞

2017年8月14日

利用Path路径设计的按钮图标(Silverlight)

1131阅读·0评论·0点赞

2015年9月14日

在WPF中使用SVG矢量图

3833阅读·0评论·1点赞

2021年8月3日

好消息:专利申请并不麻烦,这有专利申请流程及费用,立即查询!

盛凡知识产权

广告

Expression Design 4工具与Expression Blend 4工具

910阅读·0评论·0点赞

2019年3月1日

android vector矢量图画图详解

7543阅读·0评论·6点赞

2016年5月8日

WPF中如何在Image控件中显示动态生成的Path?

1516阅读·0评论·0点赞

2018年12月20日

PSD路径转换为 WPF path 的data

259阅读·0评论·0点赞

2018年4月2日

C# 绘图3 路径Path & OnPaint方法

1442阅读·0评论·1点赞

2017年2月13日

Android进阶之路 - Uri、Path、File、Bitmap 转换方式

5307阅读·1评论·1点赞

2018年10月13日

WPF开发教程

23W阅读·5评论·50点赞

2019年7月2日

WPF绘制矢量图(网址收藏)

1428阅读·0评论·0点赞

2020年1月8日

WPF中制作立体效果的文字或LOGO图形

14W阅读·0评论·1点赞

2008年4月20日

CMAKE 批量获取目录下指定类型文件并转换为相对路径

810阅读·0评论·1点赞

2021年3月28日

WPF大缩小后显得模糊/锯齿怎么办

685阅读·0评论·1点赞

2020年5月18日

WinForm和WPF中使用字体图标ICON

1369阅读·0评论·0点赞

2022年2月16日

Svg 图标转换成Wpf path Geometry

2824阅读·2评论·0点赞

2020年12月22日

去首页

看看更多热门内容

在WPF开发中,如果您需要给第三方软件开发插件,可以通过以下步骤获取Application对象:

1、在插件代码中引用PresentationFramework程序集。这个程序集通常可以在以下路径中找到:C:\Windows\MicrosoftNET\Framework\v40xxxxx(根据您的NETFramework版本不同可能会有所不同)。

2、在插件的入口方法或初始化方法中,使用ApplicationCurrent属性来获取当前应用程序的Application对象。

以写一个通用类, 以扩展的附加属性附加到所有的 UIElement (已经写好了, 但不贴出来了, 留点思考) 但给个大概的

先说写好这个类后, 在 xaml 中如何对 UIElement 设置快捷键

假定这个类叫 MyHotKeyClass, 在命名空间 WPFApp1 上

下面是一份 xaml 档, Window 为根元素, 包含一个 StackPanel, 而 StackPanel 有 Button, Image 两个子元素, 现在对 Button 设置快捷键 为 Ctrl + F, 对应 Click 事件; 对 Image 设置快捷键为 Shift + D, 对应 MouseLeftButtonDown 事件:

首先在 Window 引用 xmlns

<Window

xmlns:sk="clr-namespace:WPFApp1"

>

<StackPanel>

<Button Content="Button"

sk:MyHotKeyClassAccessKey="F"

sk:MyHotKeyClassModifierKey="Control"

sk:MyHotKeyClassRoutedEvent=""

Click="Button_Click"

/>

<Image Source="C:\wpfjpg" Stretch="None"

sk:MyHotKeyClassAccessKey="D"

sk:MyHotKeyClassModifierKey="Shift"

sk:MyHotKeyClassRoutedEvent=""

MouseLeftButtonDown="Image_MouseLeftButtonDown"

/>

</StackPanel>

</Window>

只是写一个类, 然后 就可以在各个 xaml 引用了, 非常简单

但如何编写这个 MyHotKeyClass 呢

首先, 它是一个普通类, (有些网站说非要从 DependencyObject 衍生, 其实不是必须的), 从上面设置可以看出, 它至少有三个 附加属性 (DependencyProperty): AccessKey, ModifierKey, RoutedEvent

于是有了下面这个类的结构:

namespace WPFApp1

{

public class MyHotKeyClass

{

// 设置一个 AccessKey 的附加属性

public static readonly DependencyProperty AccessKeyProperty

= DependencyPropertyRegisterAttached("AccessKey", typeof(Key), typeof(MyHotKeyClass), new UIPropertyMetadata());

public static Key GetAccessKey(DependencyObject source)

{

return (Key)sourceGetValue(AccessKeyProperty);

}

public static void SetAccessKey(DependencyObject source, Key value)

{

sourceSetValue(AccessKeyProperty, value);

}

// 其余两个 ModifierKey 和 RoutedEvent 对应的元数据类型分别是

// typeof(ModifierKeys) 和 typeof(RoutedEvent)

// 详细的就不写了, 和第一个 AccessKey 的定法基本上一致

}

}

最后测试这个类的工作, 在 Window 对应的类下写好按钮 Click 事件:

Button_Click()

{

MessageBoxShow("Button was clicked");

}

Image_MouseLeftButtonDown()

{

}

当按下 Ctrl + F 时, 就相当于点击了按钮, 当按下 Shift + D 时就相当于在 Image 控件上点了鼠标左键

-------- END ----

关键点是 写好 DependencyProperty

Good Luck

         ///   <summary>    

         ///   获取网卡硬件地址    

         ///   </summary>    

        ///   <returns> string </returns>  

        //using SystemManagement;  

        public string GetMoAddress()   

         {   

             string MoAddress = " ";   

            using (ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"))   

            {   

               ManagementObjectCollection moc2 = mcGetInstances();   

                 foreach (ManagementObject mo in moc2)   

               {   

                     if ((bool)mo["IPEnabled"] == true)   

                        MoAddress = mo["MacAddress"]ToString();   

                    moDispose();   

                }   

            }   

             return MoAddressToString();   

        }

以上就是关于设计文件转曲转path全部的内容,包括:设计文件转曲转path、wpf给第三方软件开发插件怎么获取application.c、wpf中怎样在按钮上显示快捷方式的图标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10138334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存