2012-04-26 23 views
0

這裏網格你有一個非常簡單的獨立XAML文件保持一個列表框:在白色

<!-- MyListBox.xaml --> 
<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainPage" Height="100" Width="525"> 
    <ListBox> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="42"></RowDefinition><!-- THE MAGIC LINE--> 
      </Grid.RowDefinitions> 
     </Grid> 
    </ListBox> 
</Page> 

如果您在Internet Explorer中打開此並單擊ListBox,那麼它會變成藍色。但是,如果您從THE MAGIC LINE中刪除Height="42",那麼當您單擊該框時,該框將保持白色。我有兩個問題:

  1. 爲什麼Height="42"的存在與否是有差別的?
  2. 即使當THE MAGIC LINE包含高度的明確聲明,我也想使箱子永久爲白色。你怎麼做到這一點?
+0

爲什麼你的ListBox有一個Grid作爲一個Child元素? – blindmeis 2012-04-26 11:27:25

+0

那麼,上面的玩具應用程序是我正在研究的一個真實世界應用程序的極簡化版本。恐怕,將網格中子元素的類型更改爲其他元素實際上並不可行。 – user181813 2012-04-26 11:32:06

回答

2

藍色是您的列表框的默認選擇顏色。最容易的方法是設置以下內容

<ListBox> 
     <ListBox.Resources> 
      <Style TargetType="{x:Type ListBox}"> 
       <Style.Resources> 
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/> 
       </Style.Resources> 
      </Style> 
     </ListBox.Resources> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="42"></RowDefinition> 
       <!-- THE MAGIC LINE--> 
      </Grid.RowDefinitions> 
     </Grid> 
    </ListBox> 

編輯:您的標題與您的其他問題不同。如果你想要不同的東西,請留下評論

+0

好吧,我現在改了標題。 – user181813 2012-04-26 12:13:06

+0

我的風格做到了你想要的嗎? – blindmeis 2012-04-26 12:22:44

+0

它就像一個魅力,謝謝! – user181813 2012-04-27 14:52:20