2012-09-17 100 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設置了一個負的左邊距。感謝您的幫助:) –