Silverlight:MouseDragElementBehavior无法应用于ListBox的变相解决办法
时间:2022-04-23
本文章向大家介绍Silverlight:MouseDragElementBehavior无法应用于ListBox的变相解决办法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Blend自带的行为MouseDragElementBehavior应用到ListBox后,如果用鼠标按住列表列拖动,没有任何效果,在多次尝试中意外发现,如果将ListBox的边框设置成一个较大值,在边框上点击时,却可以拖动,但是一般开发中,没人会把ListBox设置一个粗粗的难看边框。于是想到了下面的变通解决办法:当鼠标进入时显示边框,鼠标离开时再隐藏边框。
示例代码:
Xaml部分
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" x:Class="sl_drag_sample.MainPage"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<ListBox x:Name="lbSample" MinHeight="50" MinWidth="100" BorderThickness="0" HorizontalAlignment="Center" VerticalAlignment="Center" MouseEnter="ShowBorder" MouseLeftButtonUp="HideBorder" MouseLeftButtonDown="ShowBorder" MouseMove="ShowBorder" MouseLeave="HideBorder">
<i:Interaction.Behaviors>
<ei:MouseDragElementBehavior/>
</i:Interaction.Behaviors>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="这是测试文字">
<i:Interaction.Behaviors>
<ei:MouseDragElementBehavior/>
</i:Interaction.Behaviors>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</UserControl>
Xaml.cs部分
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace sl_drag_sample
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
char[] s = "ABCDE".ToCharArray();
lbSample.ItemsSource = s;
}
private void ShowBorder(object sender, MouseEventArgs e)
{
(sender as ListBox).BorderThickness = new Thickness(20.0);
}
private void HideBorder(object sender, MouseEventArgs e)
{
(sender as ListBox).BorderThickness = new Thickness(0.0);
}
}
}
- 操作系统存储管理和oracle数据库(第一篇) (r3笔记第76天)
- 关于虚拟索引的学习(r3笔记第75天)
- python数据挖掘:能不能找出吃货最佳住宿点?
- 解决ajax跨域请求 (总结)
- Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录
- 在深度学习TensorFlow 框架上使用 LSTM 进行情感分析
- python玩微信:如何获得自己微信的好友统计信息
- 关于不可见索引的学习(r3笔记74天)
- 【专业技术第五讲】动态链接库及其用法
- 用scrapy爬虫抓取慕课网课程数据详细步骤
- 关于pl/sql中的绑定变量(r3笔记第73天)
- python爬取网易云音乐并分析:用户有什么样的音乐偏好?
- shell基础学习总结(二) (r3笔记第72天)
- 对IMP-00013问题的思考(r3笔记第71天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android实现朋友圈评论回复列表
- android调用webservice接口获取信息
- RecyclerView嵌套RecyclerView完美实现京东tab吸顶效果
- Android使用SmsManager实现短信发送功能
- Kotlin结合Rxjava+Retrofit实现极简网络请求的方法
- 用Android Studio3.0新功能加快构建速度
- Android实现图片添加阴影效果的2种方法
- Android Webview与ScrollView的滚动兼容及留白处理的方法
- Android AOP框架AspectJ使用详解
- android仿Adapter实现自定义PagerAdapter方法示例
- android绘制几何图形的实例代码
- Android ListView控件使用方法
- Android开发之Android.mk模板的实例详解
- android实现文件下载功能
- Android实现可以展开的TextView