“创建自定义”+&引用;WPF中的按钮
我一直在尝试在WPF中创建一个自定义的加号按钮。我只想要+符号,但我没有任何运气得到正确的路径数据变量。我已经查看了路径语法,但仍然有问题 这是我到目前为止所拥有的,但它太大了。我需要一个更小、比例更高的按钮:“创建自定义”+&引用;WPF中的按钮,wpf,Wpf,我一直在尝试在WPF中创建一个自定义的加号按钮。我只想要+符号,但我没有任何运气得到正确的路径数据变量。我已经查看了路径语法,但仍然有问题 这是我到目前为止所拥有的,但它太大了。我需要一个更小、比例更高的按钮: <Path Stretch="Fill" Opacity="1" x:Name="path" StrokeThickness="10" RenderTransformOrigin="0.5,0.5" M
<Path
Stretch="Fill"
Opacity="1"
x:Name="path"
StrokeThickness="10"
RenderTransformOrigin="0.5,0.5" Margin="39,56.75,39,65.25" Data="M0,5L10,5 M5,5L5,1z" >
有谁能告诉我这里出了什么问题吗
谢谢您可以像这样使用
数据
属性
<Button>
<Path Data="M0.5,0 L0.5,1 M0,0.5 L1,0.5"
StrokeThickness="4"
Stretch="Fill"
Stroke="Red" />
</Button>
我知道这看起来很傻,但是如果只使用大字体中包含+字符的文本块呢-
<Path Stretch="Fill"
Fill="Black"
Stroke="{x:Null}"
StrokeThickness="0.5"
Data="M3.875,0 L5.125,0 5.125,3.875 9,3.875 9,5.125 5.125,5.125 5.125,9 3.875,9 3.875,5.125 0,5.125 0,3.875 3.875,3.875 3.875,0 z" />
我知道您正在尝试使用绘图路径,并且可能希望获得解决方案。这个解决方案可能会对你将来的工作有所帮助。但是,对于这个特定的按钮,这里有一个替代方案,它可能比您所要求的解决方案更可取 我一直在尝试在WPF中创建一个自定义的加号按钮 由于没有“加号按钮”控件,所以您所做的任何操作都将是自定义的。然而,你不必完全重新发明轮子。Windows中已经使用了
+
图标
除非您的应用程序将具有完全自定义的UI,否则建议重用控件和图像以获得统一的用户体验
要查看如何获取这些现有图标,请检查以下答案:
答案是指使用VisualStudio安装的Zip文件。从该zip文件中,查看此图标:
VS2010ImageLibrary/_通用元素/Actions/Add.png
下面还有其他“添加”类型的图标:
VS2010ImageLibrary/Actions/png_格式/WinVistaVS2010ImageLibrary/Objects/png_格式/WinVista 要使用按钮上的图像,请执行以下操作:
- 提取图像
- 以任何必要的方式编辑图像(在VS或绘画程序中)
- 将图像作为嵌入资源添加到项目中
- 看看这个问题:
<Path x:Name="ButtonPath"
Margin="1"
Stroke="Gray"
StrokeThickness="1"
StrokeStartLineCap="Square"
StrokeEndLineCap="Square"
Stretch="Uniform"
VerticalAlignment="Center"
HorizontalAlignment="Center"
>
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="0,100">
<LineSegment Point="0,-100"/>
</PathFigure>
<PathFigure StartPoint="100,0">
<LineSegment Point="-100,0"/>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
为我提供程序快照中显示的加号按钮
如果“+”太大,请使用ScaleTransform.+1;这是一个很好的选项,可以让按钮看起来像Firefox的“新建选项卡”按钮。我还建议将字体加粗。这会起作用,但我需要按钮像其他按钮一样具有动画效果。使用故事板获得我想要的动画类型与您描述的效果不太好,但我需要按钮像其他按钮一样具有动画。使用故事板来获得我想要的动画类型,这与您的想法不太相符described@MerlynMorgan-Graham有没有办法像windows公开的静态类一样从xaml引用它们?@eranotzap:我不这么认为。-您仍然需要提取它们,然后像导入其他图像一样导入它们。谢谢,这是我需要的。你是怎么得出这些结论的?@Encryption:我只是手工猜测,可能是反复试验。或者他们从72宽/高开始,将有效交叉线宽度设为10,然后从那里开始计算,计算完成后除以8。它跟踪
+
形状的边缘。如果你用手在纸上画出这些坐标,形状会变得更明显。谢谢,这对我也很有用。但不确定为什么您的解决方案的数据点比RV1987少。我想我很难理解路径标记是如何工作的。它们是相对点,因此无论大小,十字架都会拉伸以填充按钮。只需要四个值。1.移动到(x,y)(0.5,0)。2.画线到(x,y)(0.5,1)。这是垂直线。然后将指针移动到(x,y)(0,0.5)并在(x,y)(1,0.5)处画一条线。这是你的横杆line@Encryption:这将使用笔划创建十字本身,它只需要两条线段。RV1987的答案追踪了十字架的轮廓,这要求您指定围绕十字架边缘的所有线段(十二条)。此答案在两条线段之间拾取笔,而RV1987的答案不拾取笔(不必拾取笔,因为它们是端到端连接的)。
<Path x:Name="ButtonPath"
Margin="1"
Stroke="Gray"
StrokeThickness="1"
StrokeStartLineCap="Square"
StrokeEndLineCap="Square"
Stretch="Uniform"
VerticalAlignment="Center"
HorizontalAlignment="Center"
>
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="0,100">
<LineSegment Point="0,-100"/>
</PathFigure>
<PathFigure StartPoint="100,0">
<LineSegment Point="-100,0"/>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>