zoukankan      html  css  js  c++  java
  • 【WPF】图片按钮的单击与双击事件

    需求:ListBox中的Item是按钮图片,要求单击和双击时触发不同的事件。

    XAML中需要引入System.Windows.Interactivity.dll

    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

    该ListBox的关键代码如下。

    <ListBox ItemsSource="{Binding YourList}">
        <ListBox.Template>
            <!-- 流式布局 左对齐 -->
            <ControlTemplate TargetType="ListBox">
                <WrapPanel Width="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.YourWidth}" Orientation="Horizontal" IsItemsHost="True"/>
            </ControlTemplate>
        </ListBox.Template>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <!-- 单击事件,传参Button自身 -->
                    <Button Width="160" Height="120" Background="Transparent" BorderBrush="#E12080" BorderThickness="1"
                            Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.YourClickCommand}"
                            CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" BorderBrush="#E12080" BorderThickness="1">
                        <!-- 双击事件,传参父节点的Button -->
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="MouseDoubleClick">
                                <i:InvokeCommandAction 
                                    Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl},Path=DataContext.YourDoubleClickCommand}"
                                    CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=1, AncestorType={x:Type Button}}}"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                        <Grid>
                            <!-- ListBoxItem的内容 -->
                            
                        </Grid>
                    </Button>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
  • 相关阅读:
    获取Activity中得到焦点的EditText
    SwipeRefreshLayout嵌套ScrollView包裹复杂头布局和RecyclerView
    摄像机识别图片中的手机号
    Glide 加载图片
    反射,元类
    类与实例
    多态
    sys模块理解补充
    python中os模块再回顾
    面向对象之封装
  • 原文地址:https://www.cnblogs.com/guxin/p/8777013.html
Copyright © 2011-2022 走看看