2012-09-17 102 views
2

我有一个WPF选项卡控件。它内部是一个装满了一些项目的列表框。 (有一个在图象表示的仅一个项目):列表框选择边距

unselected item

的项具有橙色梯度。

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

unselected item

我感兴趣的领域是蓝颜色的小左侧条子,我在红都盘旋。我意识到这是我选择该项目的产物,并且它将整个项目变成蓝色来表示这一点。但是,您会注意到,这条蓝色条不位于除左侧之外的任何边缘。

我的问题是这样的:我如何拉伸我的列表框项目的左侧,使这个蓝色的条子消失了,并且从列表框项目的橙色填充该区域?我在所能想到的所有事情上都利用了余地和填充,但无济于事。

任何提示,意见和建议,非常感谢! :)

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

ItemTemplate使用一个DataTemplate,它是一个静态资源。在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> 
+0

你可以为这个'ItemTemplate'显示相关的XAML吗? – Jay

+0

我已经用请求的信息编辑它!感谢您对我的问题感兴趣! –

回答

-1

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

+1

不,您在Windows XP/2003上没有这些边距。但你可以在Windows 8上看到它们。 –

+0

我没有使用Windows 8.这解决了我的问题,否则我不会在这里说明它。你真的想减少一个6个月大的帖子,只提供几乎没有见解? –

+0

@mherr,请考虑答案适用于所有人,并且其他版本(和修订版)要比您当前使用的版本(或更准确地说,在2011年使用版本)必须考虑。设置一个消极的边界对我来说听起来像是一个可怕的主意,你应该感谢Manushin在这里的广阔视角。 – Omer

2

我敢肯定,问题是你的TabControl容器,你不说,反正,只要设置Padding到零上TabControl

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

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

+0

感谢您的回应!我的错误是没有放置我的选项卡控件,但是tab控件已经有了一个0的填充。我也尝试了一个0的边距,但它没有什么区别。 –

+0

我找到了解决方案......回想起来,这很简单。我只是为Listbox设置了一个负的左边距。感谢您的帮助:) –