如何在WPF中对Material Design Pack图标进行点击事件?

时间:2019-03-11 04:49:42

标签: c# wpf material-design

我在WPF系统中使用了物料设计包图标。是否可以在图标上进行类似点击事件的操作。就像当我们单击该图标时,它将转到我们想要的页面(类似按钮)。

这是我在WPF WINDOWS上的代码

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main( )
{
        char *str1=malloc(20 * sizeof(char));
        char *str2 = "Front" ;
        char *str3 ;
        if(str1){
                strcpy(str1,"United");
                str3 = strcat ( str1, str2 ) ;
                printf ( "%s\n", str3 ) ;
                free(str1);
        }
        else{
                printf("malloc failure!\n");
        }
}

我同时使用按钮和图标(并且我同时需要),这是我需要的,当用户单击图标或堆栈面板内的任何地方时,它也将像我的按钮单击事件一样。可能吗 ?还是我需要使用其他图标?

2 个答案:

答案 0 :(得分:1)

您可以使用MaterialDesignPack程序包中定义的MouseDown事件。

 <materialDesign:PackIcon Kind="MapMarkerMinus" Height="20" Width="25" Margin="10" MouseDown="UIElement_OnMouseEnter"/>

答案 1 :(得分:0)

最好将图标放入DataTemplate并将模板应用于按钮;模板和样式都是WPF的亮点。

从我的头顶(未测试):

<Window.Resources>
    <DataTemplate x:Key="ButtonContentTemplate">
      <StackPanel Orientation="Horizontal">
        <materialDesign:PackIcon Kind="Man" Height="20" Width="25" Margin="10"/>
        <ContentPresenter Content="{Binding}"/>
      </StackPanel>
    </DataTemplate>
  </Window.Resources>

然后,您可以将模板应用于一个或多个按钮:

<Button ContentTemplate="{StaticResource ButtonContentTemplate}" 
        Content="Salesman"/>