3

这就是问题所在:我有一个数据绑定的项目列表,基本上是用户将请求映射到响应的一种方式。响应是一个基于 xml 的文件。我让他们将这些排队,所以我使用了一个组合框来响应。响应将包括完整路径,因此它们会有点长。我希望组合框的显示文本右对齐,以便用户可以看到文件名。对于我的静态控件,我只在加载文件并完成时使用 ScrollToHorizo​​ntalOffset()。对于这个动态列表,我想在 xaml 中进行。

“有些丑陋”的解决方案是在加载时存储所有 ComboBox 对象......然后我可以直接调用 ScrollToHorizo​​ntalOffset() ,但我真的更喜欢用比这更干净的方式来做!编辑:(实际上,这可能不合理。快速浏览一下试图解决这个问题会遇到一些非常尴尬的情况,试图将我的数据源项映射到控件)

我试过 Horizo​​ntalContentAlignment,它只影响 ComboBox 的“下拉”部分。

我也尝试过挂钩其他各种加载事件,但还没有找到一个有效的。

4

1 回答 1

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>

要测量文本,请参阅在 WPF 中测量文本

于 2012-06-12T13:54:56.240 回答