Silvelright:ListBox无法用Tab顺序切换内部元素焦点的解决
时间:2022-04-23
本文章向大家介绍Silvelright:ListBox无法用Tab顺序切换内部元素焦点的解决,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
默认情况下,Silverlight自带的ListBox控件如果内部有多个TextBox,用户无法用键盘上的Tab键,在ListBox内部的TextBox之间切换。但Teterik RadControls 中的telerik:ListBox却很好的解决了这个问题,只要把telerik:ListBox的IsTabStop设置成false,同时把TabNavigation设置成Local即可(而SL自带的ListBox就算设置了这二个属性,Tab键需要按二次才能切换焦点)
完整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:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" x:Class="List_Focus_Sample.MainPage"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="35"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="35"/>
</Grid.RowDefinitions>
<TextBox Text="下面是Silverlight自带的ListBox" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<ListBox Grid.Row="1" IsTabStop="False" ItemsSource="{Binding ListCode, Mode=TwoWay}" BorderThickness="0" HorizontalAlignment="Center" VerticalAlignment="Center">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Text, Mode=TwoWay}" Width="150" Margin="5" BorderThickness="3"/>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Margin="10"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter Content="{TemplateBinding Content}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<i:Interaction.Behaviors>
<ei:MouseDragElementBehavior/>
</i:Interaction.Behaviors>
</ListBox>
<TextBox Grid.Row="2" Text="下面是Telerik RadControls提供的ListBox" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="208,0,208,6"/>
<telerik:ListBox TabNavigation="Local" IsTabStop="False" Grid.Row="3" ItemsSource="{Binding ListCode, Mode=TwoWay}" HorizontalAlignment="Center" VerticalAlignment="Center">
<telerik:ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Text, Mode=TwoWay}" Width="150" Margin="5" BorderThickness="3"/>
</DataTemplate>
</telerik:ListBox.ItemTemplate>
<telerik:ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Margin="10"/>
</ItemsPanelTemplate>
</telerik:ListBox.ItemsPanel>
<i:Interaction.Behaviors>
<ei:MouseDragElementBehavior/>
</i:Interaction.Behaviors>
</telerik:ListBox>
<TextBox Text="Telerik又一次展示了它给力的一面" Grid.Row="4" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</UserControl>
意外惊喜:之前写过一篇博文,讲述了 Silverlight自带的ListBox,无法应用Blend中的MouseDragElementBehavior(即:应用该行为仍然无法拖动ListBox),但是telerik:ListBox发现居然可以(本例中,用鼠标按住telerik:ListBox中的任一文本框的边框,即可拖动整个ListBox)--商业控件就是给力!
- WP Settings Generator:生成WordPress设置相关代码的工具
- Reactjs 入门基础(三)
- 小谈中文环境下中文排版的font-family 字体选择
- WordPress 的几个高级调试( Debug)技巧
- Customizer Library:主题“自定义”功能的WordPress类库
- Reactjs 入门基础(二)
- WordPress中当评论审核通过时候给评论者发邮件
- Reactjs 入门基础(一)
- Option Framework 框架的三个自定义技巧
- 记录一个在Mac OS X 中本地安装Ghost 的报错问题
- 盘点:2017年发生在上海的科技大新闻 与我们的生活如何密切相关
- 滚雷进口车获5亿元投资 品牌双拼给力十足
- Github 与 Bitbucket 的互助协作
- JavaScript 基础(七) 箭头函数 generator Date JSON
- 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 数组属性和方法
- 线上故障实录-一大早服务就不可用了?
- mapboxGL中popup遮挡的优化
- SQL注入的基本步骤
- JS 变量作用域导致的一个坑
- 池化技术到达有多牛?看了线程和线程池的对比吓我一跳!
- Nginx 跨域 add_header 403状态下无效
- Cannot set property 'branchdata' of undefined
- 【每日一题】27. Remove Element
- 【CPP】《程序员面试金典》习题(1)——数组与字符串
- 【CPP】《程序员面试金典》习题(2)——链表
- 【CPP】《程序员面试金典》习题(3)——栈和队列
- PPYOLO:2020不容错过的目标检测调参Tricks
- 【笔记】《C++Primer》—— 第11章:关联容器
- 【笔记】《C++Primer》—— 第12章:动态内存
- 【笔记】《C++Primer》—— 第13章:拷贝控制