问题在于:我有一个数据绑定的项目列表,基本上是用户将请求映射到响应的一种方式。响应是基于xml的文件。我让他们排队,所以我使用了一个组合框进行响应。响应将包括完整路径,因此它们会有点长。我希望组合框的显示文本是右对齐的,这样用户就可以看到文件名。对于我的静态控件,我只是在加载文件时使用ScrollToHorizontalOffset()并且我已经完成了。对于这个动态列表,我想在xaml中进行。
“有些难看”的解决方案是在加载时存储所有ComboBox对象...然后我可以直接调用ScrollToHorizontalOffset(),但我真的更喜欢这样做比它更清晰!编辑:(实际上,这可能是不合理的。快速查看试图解决这个问题会进入一些非常尴尬的情况,试图将我的数据源项目映射到控件)
我尝试过HorizontalContentAlignment,它只会影响ComboBox的“下拉”部分。
我还试图挂钩其他各种加载事件,但还没找到一个有效的加载事件。
答案 0 :(得分:1)
使用项目模板,您可以决定要显示的内容。 您可以设置工具提示。然后,您还可以使用转换器添加点。
<ComboBox x:Name="ConfigurationComboBox" VerticalContentAlignment="Center" ToolTip="saved configuration" SelectionChanged="ConfigurationComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate >
<StackPanel>
<TextBlock Text="{Binding}" ToolTip="{Binding Path}"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
要衡量文字,请参阅Measuring text in WPF。