- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我添加了一个 DataTemplate
到 ListBox
类将我的收藏绑定(bind)到:
<ListBox x:Name="lstEmails" Height="259" Margin="12,0,12,41" Width="276"
SelectionChanged="lstEmails_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Visibility="Hidden" Content="{Binding ID}"></Label>
<TextBox Width="200" Text="{Binding EmailAddress}"></TextBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
TextBox
,
ListBox
不会自动设置关联的
ListItem
如
Selected
.我可以在代码中做到这一点,但我更愿意将它用作一个组件(那就不足为奇了)。
<UserControl.Resources>
<!--<TextBox x:Key="TB" x:Name="TextBoxInsideListBoxItemTemplate">
<TextBox.Style>-->
<Style TargetType="{x:Type TextBox}">
<Setter Property="IsHitTestVisible" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ListBoxItem}, AncestorLevel=1}}"
Value="True">
<Setter Property="IsHitTestVisible" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
<!--</TextBox.Style>
</TextBox>-->
</UserControl.Resources>
<Grid>
<ListBox x:Name="lstEmails" Height="259" Margin="12,0,12,41" Width="276" SelectionChanged="lstEmails_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<!--<Label Visibility="Hidden" Content="{Binding ID}"></Label>-->
<TextBox Width="220" Text="{Binding EmailAddress}" >
</TextBox>
<!--<TextBox Width="220" Text="{Binding EmailAddress}" GotFocus="TextBox_GotFocus"></TextBox>-->
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button Width="20" Margin="12,0,0,12" Name="btnAdd" VerticalAlignment="Bottom" Click="btnAdd_Click" Height="23" HorizontalAlignment="Left">+</Button>
<Button Width="20" HorizontalAlignment="Left" Margin="30,0,0,12" Name="btnRemove" VerticalAlignment="Bottom" Click="btnRemove_Click" Height="23">-</Button>
<Button Height="23" HorizontalAlignment="Right" Margin="0,0,12,12" Name="btnApply" VerticalAlignment="Bottom" Width="49" Click="btnApply_Click">Apply</Button>
</Grid>
最佳答案
您可以在属性 IsKeyboardFocusWithin
上触发在 ItemContainerStyle
并设置IsSelected
至true
.
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource Self}}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(ListBoxItem.IsSelected)">
<DiscreteBooleanKeyFrame KeyTime="0" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
Setter
而不是单帧动画,但是一旦焦点离开
ListBox
,选择将再次丢失:
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsKeyboardFocusWithin, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="IsSelected" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
关于wpf - 如果 ItemTemplate 中的 TextBox 获得焦点,则选择 ListBoxItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191922/
您好,我找不到任何类似的问题,所以我发布了新问题。在下面的代码中,我使用 ListBoxItems 创建 ListBox 控件,每个 ListBoxItems 都包含内部单选按钮。当我单击单选按钮时,
我将以下数据模板应用于列表框: 当我单击按钮时,命令被触发,但 ListBoxItem 没有被选中。如何强制它被选中,以便我可以在我的“执行
我想在数据绑定(bind)的多个列表框上实现拖放 - 使用 MVVM 模式。我不是试图在列表框之间拖放,而是希望用户能够在每个列表框中拖放列表框项,以便他们可以重新排列排序顺序。我在 SO 上发现这篇
我想实现一种效果,其中 ListBoxItem 被选中(突出显示)几秒钟,然后被取消选中。尝试使用淡入淡出效果实现简单的控件突出显示,但为了使事情正常进行,我需要相应地更改一个属性。 我有一个 IsS
我尝试实现一个 ListBox,其中所选项目比其他项目更详细地显示。 Josh Smith 在 his blog 上展示了一种方法. 为了增强用户体验,我想对变化进行动画处理(即项目变大,附加信息淡入
我只能找到如何通过单击组件 -> Items Editor 来创建 ListBoxItem。 我们如何使用 Firemonkey 以编程方式创建 ListBoxItem? 最佳答案 只需创建列表框项,
是否可以从 Windows Presentation Foundation 的代码隐藏更改选定的 ListBoxItem? 这真的是一个非常简单的任务,我有一个 Next 和 Previous 按钮,
我有一个带样式的列表框,包括带样式的 Listboxitem。我正在尝试创建一个将不透明度从 0 更改为 1 的动画,以使项目显示在列表中。我已设法使用以下代码做到这一点:
我们如何在运行时向 Windows Metro 风格应用程序中的 ListBox 控件添加新项目? 我来自 WinForms,所以你可以想象,我现在很困惑。 我有以下内容: public class
由于某些原因,我必须在后面的代码中初始化 ListBox 项,原因太复杂了。 在 WPF UserControl 显示期间调用 LoadFamily()。 public void LoadFamily
我正在为一个学校项目构建一个聊天室。在聊天室中有一个包含所有消息的列表框。 Messages 是一个包含所有消息的 ObservableCollection。 Message 类有发件人姓名变量。
我想将用户控件 (View) 绑定(bind)到 ListBoxItem。 ListBox 绑定(bind)到 ViewModel 的集合。我已将 ListBox 的 ItemTemplate 设置为
我在设置 HighlightBrushKey 时遇到问题的 SelectedItem的 Listbox在 WPF 中。我的意图是根据代码中给定的 bool 值设置 Item 的颜色。 我试过以下步骤:
实际的视觉效果由 DataTemplate 决定。在运行时,如何遍历 ListBoxItem 的所有可视元素? 最佳答案 假设您引用了 ListBoxItem 之一列表中的 s,您可以使用 Visua
这是我的问题:
我有一个 ListBox 控件;我如何使用下面的代码为每个 ListBoxItem 设置 ToolTip。
我想做这样的事情。
我正在尝试为我的 wpf 应用程序中的业务对象定义一个 dataTemplate,该对象的集合绑定(bind)到 ListBox。
我有一个 ListBox 控件;我如何使用下面的代码为每个 ListBoxItem 设置 ToolTip。
我正在创建一个自定义混合行为来作用于 ListboxItem,即 public class DragtestBehaviour : Behavior { public DragtestBeha
我是一名优秀的程序员,十分优秀!