我可以在XAML中实现ScrollToHorizo​​ntalOffset()功能吗? (对于动态列表)

时间:2012-04-17 20:15:51

标签: c# wpf xaml dynamic combobox

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

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

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

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

1 个答案:

答案 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