【问题标题】:Listbox selection margin列表框选择边距
【发布时间】:2012-09-17 19:51:38
【问题描述】:

我有一个 WPF 选项卡控件。它里面是一个列表框,里面装满了一些项目。 (图中只表示了一项):

该项目具有橙色渐变。

一旦我用鼠标选择它,这里就是同一个项目:

我感兴趣的区域是我用红色圈出的蓝色的左侧小条。我意识到这是我选择该项目的产物,它将整个项目涂成蓝色以表示这一点。但是您会注意到,除了左侧之外,这片蓝色并不位于任何边缘。

我的问题是:如何拉伸列表框项目的左侧,使蓝色条消失,而列表框项目中的橙色填充该区域?我在我能想到的所有东西上都使用了边距和填充,但无济于事。

非常感谢任何提示、cmets 和建议! :)

编辑:根据要求,ItemTemplate 的 Xaml。

ItemTemplate 使用作为静态资源的 DataTemplate。数据模板如下所示:

    <DataTemplate x:Key="MyDataTemplate">
        <UserControl MouseDoubleClick="MouseDoubleClick_Event">
            <DockPanel Background="<the orange gradient>" LastChildFill="True">
                <Image Name="AnImage" Height="20" Width="20" Source=" Binding Path=ImagePath}"/>
                <Label Width="Auto">
                    <TextBlock Text="{Binding Path=TheName}" />
                </Label>
            </DockPanel>
        </UserControl>
    </DataTemplate>

【问题讨论】:

  • 你能显示这个ItemTemplate的相关XAML吗?
  • 我已经用要求的信息编辑了它!感谢您对我的问题感兴趣!

标签: wpf listbox selection


【解决方案1】:

我很确定问题出在您的 TabControl 容器上,无论如何,您只需在 TabControl 上将 Padding 设置为零即可:

<TabControl Margin="0" Padding="0">

TabControl 的默认样式将 Padding 设置为 4(这是您看到的内边距)并将内容主机上的 Margin 绑定到 TabControl 上的 Padding

【讨论】:

  • 感谢您的回复!我的错误是没有放置我的选项卡控件,但选项卡控件的填充已为 0。我也尝试了 0 的边距,但没有任何区别。
  • 我已经找到了解决方案……回想起来很简单。我只是为列表框设置了一个负的左边距。谢谢你的帮助:)
【解决方案2】:

我已经找到了解决方案。如果我只是在我的 ListBox 上设置一个负的左边距,它会将 ListBoxItems 移动到该数量之上,并且条子消失。感谢大家的关注!

【讨论】:

  • 没有。 Windows XP/2003 上没有这些边距。但您可以在 Windows 8 上看到它们。
  • 我没有使用 Windows 8。这解决了我的问题,否则我不会在这里说明。您真的想对 6 个月前的帖子投反对票,只是为了提供几乎没有任何见解?
  • @mherr,请考虑每个人的答案,并且必须考虑您当前使用的版本(或更准确地说是在 2011 年使用的版本)之外的其他版本(和修订版)。设置负边框对我来说听起来是个糟糕的主意,您应该感谢 Manushin 的广阔视野。
猜你喜欢
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-29
  • 1970-01-01
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多