- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试了解 WPF 表单上 FormState 图标(或一般图标)的最佳实践。
我问的原因是因为当我最初创建我的 Min/Max/Restore/Close 按钮时,我创建了几个不同的实现,认为完成后一个会很明显。我首先使用与 MahApps 的现代 UI 相同的方法创建它们。使用 xaml 中的数据点来绘制它们。然后我通过从 Visual Studio 2012 跟踪它们在 illustrator 中创建了我自己的,然后将它们保存为 SVG。我的第三种方法是在另一个人提到他们在内部使用 Merlott 字体之后。
在研究使用 merlott 字体后,我找到了关于同一主题的答案。答案说使用 Merlott 字体是最佳实践,并避免使用路径数据点。答案可以在这里看到:Making WPF applications look Metro-styled, even in Windows 7?
所以这让我更加质疑了。我决定使用可缩放矢量图形(SVG 格式)。
从那里我能够将 Blend Design 中的图形转换为纯 XAML。它使用几何渲染形状。
所以此时我有 4 种不同的方法来完成这项任务。每一个都围绕着相同的难度。
所以这让我很困惑。我有这 4 个实现,都很容易实现,但不知道哪一个是最佳实践。
有些人可能认为这是主观的,并且可能是肛门的。尽管我想在此项目(以及 future 的项目)中使用最佳实践。
谁能解释一下哪个更好,为什么?
最佳答案
看来这个工具很适合你:
https://github.com/BerndK/SvgToXaml
它可以浏览 svg 文件并转换它们(无需使用其他工具,如 inkscape 或 illustrator)。它还可以为文件夹(批处理)中的所有 svg 创建单个 xaml 文件。你只需要像这样引用创建的对象,你就是黄金:
<Button>
<Image Source="{StaticResource cloud_3_iconDrawingImage}"/>
</Button>
包含示例应用。
回答您的问题(4 个选项?)
选项 1 不可能开箱即用(解决方案可能是 https://sharpvectors.codeplex.com/ )
选项 2 和 3 似乎是相同的 - 路径对象使用几何。更准确地说,我更喜欢使用图像而不是路径,因为图像具有裁剪并且可以包含具有多种颜色的多个 PathGeometries。图像可以比路径更好地处理鼠标点击。结果可能如下所示:
<DrawingImage x:Key="cloud_3_iconDrawingImage">
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V512 H512 V0 H0 Z">
<GeometryDrawing Brush="#FF000000" Geometry="F1 M512,512z M0,0z M409.338,216.254C398.922,161.293 350.672,120.477 293.557,120.477 258.459,120.477 225.926,135.762 203.686,162.061 166.538,152.155 127.607,173.842 116.753,210.84 78.16,222.176 50.6,257.895 50.6,299.303 50.6,350.155 91.97,391.524 143.822,391.524L369.18,391.524C420.03,391.524 461.401,350.155 461.401,299.303 461.4,263.389 440.941,231.457 409.338,216.254z M369.18,351.523L143.821,351.523C114.026,351.523 90.599,328.097 90.599,299.302 90.599,265.224 118.249,239.224 152.785,245.486 141.249,205.89 196.916,183.556 217.426,213.138 222.583,198.556 243.249,160.476 293.557,160.476 331.584,160.476 370.918,186.556 372.221,245.458 397.584,245.556 421.401,263.89 421.401,299.302 421.4,328.098 397.975,351.523 369.18,351.523z" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
请注意,这是要存储在资源中某处的“图像/图标”的定义。要显示它,请将其用作带有图像的 ImageSource,如上所示。
选项 4:我认为那里只给出了一些图标,不是我的首选解决方案,但也许我理解你的想法是字体错误。
关于c# - XAML 中图标格式的最佳实践(SVG、路径数据点、几何/XAML 或字体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23499209/
我想创建一个包含一堆其他 XAML 文件的主 XAML 文件。这可能吗? 最佳答案 在您的主 Xaml 中,使用 项目控件 balise 和 Xaml 组合器,您必须使用 定义您的项目用户控件 代替
如何在 xaml 中更改 ToggleSwitch 中实际开关的大小?我可以更改 OnContent 和 OffContent 的文本大小,但滑动开关永远不会更改大小。 这些都不会改变开关本身的大小,
我有一个文本 block 列表,其中可能包括里面的 url,比如: 构建失败,请在此处查看更多信息:http://... 构建成功 应用 http://myapp/无法启动,请在此处查看更多信息:ht
我想做的事 我最近一直在探索 XAML 资源字典。它们非常强大,但为了减少(甚至进一步)为适应任何修改而需要进行的更改,我想使用一些基本的算术运算来更改 HeightRequest Entry 的属性
我使用以下代码创建了一个弹出窗口,但我不知道如何将它居中 我试图在运行时自动更改边距,但我不知道该怎么做,但是有人知道如何将弹出窗口居中吗? 它没有标准维度,因为我需要全局化我的程序
哪种类型的命名更适合在 XAML 中使用: xmlns:inventoryControls="clr-namespace:Inventory.Components.Controls;assembly=
我正在尝试格式化我的 string每 3 位有逗号,如果不是整数,则为小数。我检查了大约 20 个示例,这是我最接近的示例: 但我得到一个 The property 'StringFormat' w
在 Windows Phone 8 中,我想将一个图像放在一个圆圈中。是否有类似网格的圆形容器?我知道有椭圆位它不是容器 最佳答案 这是我如何做到的。
有没有办法在 XAML 中检查逻辑非逻辑。我试图绑定(bind)到广泛使用的属性,但是对于这些新的绑定(bind),它的方式是错误的。我不想修改属性,那么有没有办法在 xaml 中反转 bool 结果
在 html 中可以说 width="20%"。这在 XAML 中当然是不允许的。有谁知道为什么会这样或者有没有办法在 XAML 中获得百分比值支持? 最佳答案 网格列定义和行定义允许比例单位(除了固
我可以动态创建 XAML 并将其弹出到我的应用程序中吗?该怎么做呢? 最佳答案 是的,这很简单: XmlReader tXml = XmlReader.Create(myXamlString); UI
简短版: 如果不使用 xamlc 预编译 xaml,应用程序中捆绑了什么以在运行时编译 xaml?它是否取决于 xamarin.forms nugets 之外的应用构建时的当前工具集? 长版: 我们有
我知道如何显示内容页面,但如何根据方向选择正确的布局。我想编写 xaml 文件:一个用于垂直方向,另一个用于水平方向。方向改变时是否可以切换xaml文件 最佳答案 Xamarin.Forms does
我是一名 Android 开发者,我是 Windows Phone 8 的新手 最近我做了一个 android 应用程序..所以我想在 Windows Phone 8 中开发具有相同 View 和相同
在库中编译 XAML 时出现以下错误: Themes\Generic.xaml(35,12): XamlCompiler error WMC0610: XBF generation error cod
我需要在几个不同的 XAML 布局文件中包含一个通用的 XAML。 我不想在其他 XAML 文件中对重复的 XAML 部分进行硬编码。 怎么做包含? 最佳答案 你能把共享代码变成UserControl
我想像这样添加一个符号: 这行不通,所以我尝试用\分隔,但也行不通。有人对我如何做到这一点有任何建议吗? 最佳答案 其实这个问题不是关于XAML的,它只是一个纯XML的问题。 XML中有些字符需要转
我在 Xaml 中定义了这样的列表。 #3599B8 #374649 #FD625E #F2C80F
在向 Microsoft 报告之前,我想在这里问一下。我有一个问题,我无法看到我的 WinUI 3 应用程序的实时可视化树。我什至看不到应用程序内工具栏。我可以在 WPF 和 UWP 应用程序中看到,
我已经定义了一个动画作为一个资源,当通过这样的 EventTrigger 调用时它可以工作: 然后
我是一名优秀的程序员,十分优秀!