Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在XAML中实现ScrollToHorizontalOffset()功能吗?(用于动态列表)_C#_Wpf_Xaml_Dynamic_Combobox - Fatal编程技术网

C# 我可以在XAML中实现ScrollToHorizontalOffset()功能吗?(用于动态列表)

C# 我可以在XAML中实现ScrollToHorizontalOffset()功能吗?(用于动态列表),c#,wpf,xaml,dynamic,combobox,C#,Wpf,Xaml,Dynamic,Combobox,问题是:我有一个数据绑定的项目列表,基本上是用户将请求映射到响应的一种方式。响应是一个基于xml的文件。我让他们排队,所以我用了一个组合框来回应。响应将包括完整路径,因此它们会有点长。我希望组合框显示的文本右对齐,以便用户可以看到文件名。对于我的静态控件,我只在加载文件并完成后使用ScrollToHorizontalOffset()。对于这个动态列表,我想用xaml来实现 “有点难看”的解决方案是在加载时存储所有ComboBox对象。。。然后我可以直接调用ScrollToHorizontalOf

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

“有点难看”的解决方案是在加载时存储所有ComboBox对象。。。然后我可以直接调用ScrollToHorizontalOffset(),但我更喜欢用一种更干净的方式!编辑:(实际上,这可能是不合理的。快速查看一下试图绕过此问题的尝试会陷入一些非常尴尬的情况,试图将我的数据源项映射到控件)

我尝试了HorizontalContentAlignment,它只影响组合框的“下拉”部分


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

使用项目模板,您可以决定将显示什么。 可以设置工具提示。然后还可以使用转换器添加点

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


要测量文本,请参见。

我认为可以做到这一点的唯一方法是将每个
ComboBoxItem
的内容设置为一个经过修剪的字符串,该字符串使用转换器仅显示路径的最后一部分(如果
ComboBox
不是固定宽度,则需要计算要保留多少文本)。为了帮助用户,您可以将项目和组合的工具提示设置为绑定到完整路径。当用户单击控件时,整个项目将高亮显示,光标右对齐。所以,点击的最终结果就是我想要的。目前还没有用户抱怨,所以我推迟了这个问题。如果我有时间的话,我可以再拿一次,但这不是关键。这会指引我正确的方向,谢谢!我没有使用过像这样的空“{Binding}”元素。