我正在考虑使用ListBox或ListView作为WPF应用程序.似乎要么支持数据绑定和项目模板.我的应用程序有一个简单的项目列表,我打算能够根据用户输入搜索/排序/过滤.数据绑定演示(http://msdn.microsoft.com/en-us/library/ms771319.aspx)使用带有CollectionViewSource的ListBox.
有没有人有哪些控制权可以使用以及何时使用?
如何禁用ListBox中的选择?
这似乎是一个荒谬简单的问题,但谷歌和Stack Overflow搜索没有产生任何结果.当项目占用的水平空间超过框中可用的水平空间时,如何在WPF ListBox中禁用水平滚动?
我没有太多的HTML经验.我期待创建一个简单的列表框,但其中一个要求是DISALLOW多个选择.列表框的大部分代码都是这样的 -
<select name="sometext" multiple="multiple">
<option>text1</option>
<option>text2</option>
<option>text3</option>
<option>text4</option>
<option>text5</option>
</select>
Run Code Online (Sandbox Code Playgroud)
但这允许多种选择.
在这里,提出了类似的问题,但"最佳"答案被低估了.所以我不确定如何做到这一点.请帮忙.
我有一个显示消息的WPF列表框.它包含左侧的头像和垂直堆叠在头像右侧的用户名和消息.布局很好,直到消息文本应自动换行,但我在列表框上得到一个水平滚动条.
我用谷歌搜索并找到了类似问题的解决方案,但都没有奏效.
<ListBox HorizontalContentAlignment="Stretch" ItemsSource="{Binding Path=FriendsTimeline}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Border BorderBrush="DarkBlue" BorderThickness="3" CornerRadius="2" Margin="3" >
<Image Height="32" Width="32" Source="{Binding Path=User.ProfileImageUrl}"/>
</Border>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Path=User.UserName}"/>
<TextBlock Text="{Binding Path=Text}" TextWrapping="WrapWithOverflow"/> <!-- This is the textblock I'm having issues with. -->
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud) 我有一个带有自定义controlIemplate的水平列表框.聚焦时,所选项目将获得虚线框.谁知道如何摆脱它?
在下面的例子中,我有一个ListBox,里面有几十个字体名称.
我原以为它会自动在它上面有一个垂直滚动条,这样你就可以选择任何字体,而不仅仅是列表中的第一个字体,但事实并非如此.
所以我添加了一个"ScrollViewer"并在右侧放置了一个"滚动条区域",但滚动条区域中没有滚动条,因此您可以滚动(!).
为什么滚动条不是自动的,如何强制滚动条?
<StackPanel Name="stack1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<ScrollViewer>
<ListBox Grid.Row="0" Name="lstFonts" Margin="3" ItemsSource="{x:Static Fonts.SystemFontFamilies}"/>
</ScrollViewer>
</Grid>
</StackPanel>
Run Code Online (Sandbox Code Playgroud) 我有一个ListBox DataTemplateWPF.我希望一个项目紧贴在左侧ListBox,另一个项目紧靠右侧,但我无法弄清楚如何做到这一点.
到目前为止,我有一个Grid有三列,左边和右边的列有内容,中心是占位符,宽度设置为"*".我哪里错了?
这是代码:
<DataTemplate x:Key="SmallCustomerListItem">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<WrapPanel HorizontalAlignment="Stretch" Margin="0">
<!--Some content here-->
<TextBlock Text="{Binding Path=LastName}" TextWrapping="Wrap" FontSize="24"/>
<TextBlock Text=", " TextWrapping="Wrap" FontSize="24"/>
<TextBlock Text="{Binding Path=FirstName}" TextWrapping="Wrap" FontSize="24"/>
</WrapPanel>
<ListBox ItemsSource="{Binding Path=PhoneNumbers}" Grid.Column="2" d:DesignWidth="100" d:DesignHeight="50"
Margin="8,0" Background="Transparent" BorderBrush="Transparent" IsHitTestVisible="False" HorizontalAlignment="Stretch"/>
</Grid>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud) 我有一个列表框,我有以下ItemTemplate:
<DataTemplate x:Key="ScenarioItemTemplate">
<Border Margin="5,0,5,0"
Background="#FF3C3B3B"
BorderBrush="#FF797878"
BorderThickness="2"
CornerRadius="5">
<DockPanel>
<DockPanel DockPanel.Dock="Top"
Margin="0,2,0,0">
<Button HorizontalAlignment="Left"
DockPanel.Dock="Left"
FontWeight="Heavy"
Foreground="White" />
<Label Content="{Binding Path=Name}"
DockPanel.Dock="Left"
FontWeight="Heavy"
Foreground="white" />
<Label HorizontalAlignment="Right"
Background="#FF3C3B3B"
Content="X"
DockPanel.Dock="Left"
FontWeight="Heavy"
Foreground="White" />
</DockPanel>
<ContentControl Name="designerContent"
Visibility="Collapsed"
MinHeight="100"
Margin="2,0,2,2"
Content="{Binding Path=DesignerInstance}"
Background="#FF999898">
</ContentControl>
</DockPanel>
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
如您所见,ContentControl的Visibility设置为折叠.
我需要定义一个触发器,使Visibility设置为"Visible"
当ListItem被选中时,我无法弄明白.
有任何想法吗?
更新:当然我可以简单地复制DataTemplate并向有问题的ListBox添加触发器以使用其中一个或另一个,但我想防止重复此代码.
我使用Winforms ListBox作为一个小事件列表,并希望填充它以便最后一个事件(底部)可见.该SelectionMode设置为none.用户可以滚动列表,但我希望它开始滚动到最后.
看着缺少的东西像支持ScrollIntoView,EnsureVisible,我假设我将需要创建一个从Control继承的自定义控制; 但是我不知道该怎么做.
一些指针?
listbox ×10
wpf ×8
.net ×2
c# ×2
xaml ×2
border ×1
data-binding ×1
datatemplate ×1
focus ×1
html ×1
itemtemplate ×1
layout ×1
listview ×1
scrollviewer ×1
textblock ×1
triggers ×1
winforms ×1
word-wrap ×1