c#中listbox选定指定项的事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#中listbox选定指定项的事件相关的知识,希望对你有一定的参考价值。
listbox中每行数据是a,b,c,d,我想鼠标双击,产生对话框显示选中的该项的内容,用什么listbox中事件? 怎么获取该行的值? 具体怎么写? 谢谢~~~
private void listBox1_DoubleClick(object sender, EventArgs e)MessageBox.Show(this.listBox1.SelectedItem.ToString());
控件的双击事件 参考技术A private void listBox1_DoubleClick(object sender, EventArgs e)
MessageBox.Show(this.listBox1.SelectedItem.ToString());
如何更改 UWP 中选定 ListView 项的突出显示颜色(Windows 10)
【中文标题】如何更改 UWP 中选定 ListView 项的突出显示颜色(Windows 10)【英文标题】:How to change Highlight color of the selected ListView item in UWP (Windows 10) 【发布时间】:2015-11-24 22:49:12 【问题描述】:我正在使用 C# 和 XAML 开发 Windows 10 应用程序。 我有一个 ListView,我想更改所选项目的默认 HighLight 颜色。我看到了很多代码示例(如this),但都是为 WP8 或 Win8 设计的,我试图实现这些,但它们对我不起作用。
一般来说,我在修改控件的默认主题时遇到了麻烦,因为我找不到有用的文档。 如果有人可以帮助我处理高亮颜色并推荐我好的文档,那就太好了。
【问题讨论】:
【参考方案1】:实际上发现样式属性的更好方法是使用 Blend。
首先,在 Blend 中打开您的页面。然后右击你的ListView
去
编辑其他模板 > 编辑生成的项目容器 (ItemContainerStyle) > 编辑副本。
给它起个名字然后点击OK。
现在,您已经为您的ListViewItem
s 生成了完整的内置样式,在这里您可以找到有关其外观、动画和其他视觉行为的所有信息。
你应该看看这段代码-
<ListViewItemPresenter CheckBrush="ThemeResource SystemControlForegroundBaseMediumHighBrush"
ContentMargin="TemplateBinding Padding"
CheckMode="Inline"
ContentTransitions="TemplateBinding ContentTransitions"
CheckBoxBrush="ThemeResource SystemControlForegroundBaseMediumHighBrush"
DragForeground="ThemeResource ListViewItemDragForegroundThemeBrush"
DragOpacity="ThemeResource ListViewItemDragThemeOpacity"
DragBackground="ThemeResource ListViewItemDragBackgroundThemeBrush"
DisabledOpacity="ThemeResource ListViewItemDisabledThemeOpacity"
FocusBorderBrush="ThemeResource SystemControlForegroundAltHighBrush"
FocusSecondaryBorderBrush="ThemeResource SystemControlForegroundBaseHighBrush"
HorizontalContentAlignment="TemplateBinding HorizontalContentAlignment"
PointerOverForeground="ThemeResource SystemControlHighlightAltBaseHighBrush"
PressedBackground="ThemeResource SystemControlHighlightListMediumBrush"
PlaceholderBackground="ThemeResource ListViewItemPlaceholderBackgroundThemeBrush"
PointerOverBackground="ThemeResource SystemControlHighlightListLowBrush"
ReorderHintOffset="ThemeResource ListViewItemReorderHintThemeOffset"
SelectedPressedBackground="ThemeResource SystemControlHighlightListAccentHighBrush"
SelectionCheckMarkVisualEnabled="True"
SelectedForeground="ThemeResource SystemControlHighlightAltBaseHighBrush"
SelectedPointerOverBackground="ThemeResource SystemControlHighlightListAccentMediumBrush"
SelectedBackground="ThemeResource SystemControlHighlightListAccentLowBrush"
VerticalContentAlignment="TemplateBinding VerticalContentAlignment" />
看到SelectedBackground="ThemeResource SystemControlHighlightListAccentLowBrush"
这一行了吗?在那里你可以应用你自己的颜色。请记住,它的类型应该是 Brush
而不是 Color
。
【讨论】:
谢谢!这正是我所需要的。【参考方案2】:这可以通过覆盖资源在 XAML 中实现。
<ListView ...>
<ListView.Resources>
<SolidColorBrush x:Key="ListViewItemBackgroundSelected" Color="#FF0000" />
<SolidColorBrush x:Key="ListViewItemBackgroundSelectedPointerOver" Color="#FF0000" />
</ListView.Resources>
</ListView>
【讨论】:
如何获取可用键的列表。基本上我想在悬停/选择时更改 ListViewItem 的角半径【参考方案3】:如果您不想使用 XAML,这里有一个更简单的方法(在我看来)使用 c# 更改这些设置:
Application.Current.Resources["SystemControlHighlightListAccentLowBrush"] = new SolidColorBrush(Colors.Red);
Application.Current.Resources["SystemControlHighlightListAccentMediumBrush"] = new SolidColorBrush(Colors.Red);
通过这种方式,您可以真正合乎逻辑地自定义您的项目。
【讨论】:
你在哪里设置这些?【参考方案4】:延伸 bastecklein 的回答。您希望使用 App 而不是 Application 以使此方法在 UWP 项目中工作。您可以在加载初始框架时在 App.xaml.cs 中使用此代码,也可以只在要影响的页面后面的代码上设置资源颜色。
App.Current.Resources["SystemControlHighlightListAccentLowBrush"] = new SolidColorBrush(Colors.Red);
App.Current.Resources["SystemControlHighlightListAccentMediumBrush"] = new SolidColorBrush(Colors.Red);
【讨论】:
如果我把它放在 App.xaml.cs 中,更改将反映在整个应用程序上? 不幸的是,是的。但是,一旦 UIElement 获得焦点,您就可以通过编程方式更改颜色。因此,如果您单击汉堡菜单按钮,请使用自定义颜色触发该代码。然后,如果您单击另一个想要具有不同颜色的元素,则再次触发代码。 在我的情况下,出于某种原因,只有这个“App.Current”版本有效。 “Application.Current”没有效果。谢谢大佬!以上是关于c#中listbox选定指定项的事件的主要内容,如果未能解决你的问题,请参考以下文章
C# winform中关于两个ListBox清除selectIndex的问题。
从 DoubleClick、Web 应用程序而非 Windows 窗体上的 ListBox 获取选定值
WPF ListBox 值来自另一个选定的 ListBox 项,然后上下移动