我在C#WPF窗口中有一个自定义的ComboBox。这是我第一次定制一个ComboBox,我有一行代码,我现在建立的是ComboBox上的箭头。然而,虽然我现在已经确定了"数据" (M 0 0 L 4 4 L 8 0 Z)设置ComboBox上的箭头,我不知道它意味着什么或如何创建不同的箭头类型。
#define SPIN 40000000
int compteur = 0;
void *routine_thread(void *arg) {
int i;
printf("accessing thread ... \n");
for (i = 0; i < SPIN / 4; ++i) {
compteur++;
}
printf("quitting thread ... \n");
pthread_exit(NULL);
}
int main(int argc, char *argv[]) {
pthread_t thread_id[4];
void *resultat_thread;
int statut;
int i;
for (i = 0; i < 4; i++) {
statut = pthread_create(&thread_id[i], NULL, routine_thread, NULL);
if (statut != 0) {
fprintf(stderr, "error creating thread\n");
exit(EXIT_FAILURE);
}
statut = pthread_join(thread_id[i], &resultat_thread);
if (statut != 0) {
fprintf(stderr, "error joining the thread\n");
exit(EXIT_FAILURE);
}
}
printf("compteur value is : %d\n", compteur);
if (resultat_thread == NULL)
return EXIT_FAILURE;
else
return EXIT_SUCCESS;
}
有人可以指出我正确的方向来结合这些&#34;数据&#34;用于创建我需要的箭头的元素。
答案 0 :(得分:0)
请看..那边的路径表示矢量坐标形式的图像。如果你想改变它..你可以在网站上找到这样的矢量图像,如www.iconfinder.com - &gt;搜索&#34;箭头&#34;在搜索框中以SVG格式下载任何图像(免费版)。 下载后,在NotePad等编辑器中打开图像,从中获取路径的值并将其放入代码中。这就是它。
您可以在此链接中找到该图标: https://www.iconfinder.com/search/?q=arrow&price=free
答案 1 :(得分:0)
感谢您的帮助。虽然我没有得到确定的答案,但你肯定会让我走上正轨。经过进一步研究,奇怪的“M 0 0 L 4 4 L 8 0 Z”被称为“几何迷你语言”。如果您需要创建自己的页面,那么将来任何人都值得一看:
https://rcosic.wordpress.com/2009/08/11/wpf-geometry-mini-language/
它解释了每个角色的含义,在不到5分钟的时间里,我就非常接近我所寻找的东西;现在我将玩它,直到我得到我想要的东西。
我目前需要改进的结果是:
<Path x:Name="Arrow" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Stroke="Black" StrokeThickness="0.5" Data="M 0 0 L 6 6 L 12 0"/>
我已经添加了迷你语言的解释,以防上面提供的链接及时停止工作。下面的解释绝不是我自己的,而是来自Mathew McDonald的一本书“C#2008中的Pro WPF”,这一点归功于作者。
F值 - 设置Geometry.FillRule属性。使用0表示EvenOdd,或1表示NonZero。此命令必须出现在字符串的开头(如果您决定使用它)
M x,y - 为几何创建新的PathFigure并设置其起点。必须在除F之外的任何其他命令之前使用此命令。但是,您也可以在绘制序列期间使用它来移动坐标系的原点。 (M代表移动)
L x,y - 创建指定点的LineSegment。
H x - 使用指定的X值创建水平LineSegment并保持Y值不变。
V y - 使用指定的Y值创建垂直LineSegment并保持X值不变。
radiusx,radiusY,degrees isLargeArch,isClockwise x,y - 创建指定点的ArcSegment。您可以指定描述弧的椭圆半径,弧旋转的度数,以及设置IsLargeArc和SweepDirection属性的布尔标志。
C x1,y1 x2,y2 x,y - 使用(x1,y1)和(x2,y2)处的控制点创建指定点的BezierSegment。
Q x1,y1 x,y - 为指定点创建QuadraticBezierSegment,其中一个控制点位于(x1,y1)。
S x2,y2 x,y - 使用前一个BezierSegment中的第二个控制点作为新BezierSegment中的第一个控制点,创建一个平滑的BezierSegment。
Z - 结束当前的PathFigure并将IsClosed设置为true。如果您不想将IsClosed设置为true,则不需要使用此命令 - 相反,如果要启动新的PathFigure或结束字符串,只需使用M.