2013-03-23 94 views
1

我在將我的設備主題切換爲燈光時遇到問題,我的ListPicker看起來很正常。正如你在下面的截圖中看到的,它看起來很好用黑暗主題,但它看起來透明與主題。ListPicker背景展開後+燈光主題

開始:

enter image description here

與黑暗的主題展開:

enter image description here

光主題展開:

enter image description here

This question似乎很有希望,但它似乎只適用於FullScreenMode。此外,在this article,答案鏈接到,描述更新Expanded視覺狀態,這似乎並不存在,當我在Blend中打開我的頁面並編輯模板的副本。這是我的XAML,這是非常簡單的:

<Grid x:Name="OptionsGrid" Grid.Row="1"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height=".05*" /> 
     <RowDefinition Height=".15*" /> 
     <RowDefinition Height=".05*" /> 
     <RowDefinition Height=".15*" /> 
     <RowDefinition Height=".13*" /> 
     <RowDefinition Height=".15*" /> 
     <RowDefinition Height=".15*" /> 
    </Grid.RowDefinitions> 

    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width=".15*" /> 
     <ColumnDefinition Width=".1*" /> 
     <ColumnDefinition Width=".40*" /> 
     <ColumnDefinition Width=".1*" /> 
     <ColumnDefinition Width=".15*" /> 
    </Grid.ColumnDefinitions> 

    <TextBlock Text="Test 1: " FontSize="20" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3" /> 

    <toolkit:ListPicker x:Name="lpTest1" Grid.Row="1" Grid.RowSpan="4" Grid.Column="1" Grid.ColumnSpan="3"> 
     <toolkit:ListPicker.Items> 
     <toolkit:ListPickerItem Content="Value 1"/> 
     <toolkit:ListPickerItem Content="Value 2"/> 
     <toolkit:ListPickerItem Content="Value 3"/> 
     <toolkit:ListPickerItem Content="Value 4"/> 
     </toolkit:ListPicker.Items> 
    </toolkit:ListPicker> 

    <TextBlock Text="Test 2: " FontSize="20" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3"/> 

    <toolkit:ListPicker x:Name="lpTest2" Grid.Row="3" Grid.RowSpan="4" Grid.Column="1" Grid.ColumnSpan="3"> 
     <toolkit:ListPicker.Items> 
     <toolkit:ListPickerItem Content="Value 5" /> 
     <toolkit:ListPickerItem Content="Value 6" /> 
     <toolkit:ListPickerItem Content="Value 7" /> 
     <toolkit:ListPickerItem Content="Value 8" /> 
     </toolkit:ListPicker.Items> 
    </toolkit:ListPicker> 
</Grid> 

而且,在代碼隱藏,我已經展開時得到這個代碼,迫使頂部ListPicker是在底部一頂:

lpTest1.SetValue(Canvas.ZIndexProperty, 2); 
lpTest2.SetValue(Canvas.ZIndexProperty, 1); 

有沒有辦法解決我在上面遇到的背景顏色問題?更改Background屬性只會更改未展開視圖的背景顏色。

+0

的白色兩種主題是Windows Phone的默認行爲,我的問題要問你爲什麼要改變控件的ZIndexProperty?您應該將ZIndex留給系統來管理... – 2013-03-23 21:26:20

+0

如果我刪除了我的z索引代碼,則當頂部展開(黑暗主題)時,通過頂部列表選擇器可以看到底部列表選擇器。這是我能找到的唯一解決方法。 – lhan 2013-03-23 21:41:10

+0

另外,你在屏幕截圖#3默認行爲中看到了什麼?它似乎並不像控制應該是透明的... – lhan 2013-03-23 21:56:11

回答

1

使用StackPanel而不是Grid控件,並在其他控件上指定Margin以設置它們之間的間距。

事情是這樣的:

<StackPanel> 
    <TextBlock Text="Test 1: " FontSize="20" Margin="12,0" /> 

    <toolkit:ListPicker x:Name="lpTest1" Margin="12,0"> 
     <toolkit:ListPicker.Items> 
     <toolkit:ListPickerItem Content="Value 1"/> 
     <toolkit:ListPickerItem Content="Value 2"/> 
     <toolkit:ListPickerItem Content="Value 3"/> 
     <toolkit:ListPickerItem Content="Value 4"/> 
     </toolkit:ListPicker.Items> 
    </toolkit:ListPicker> 

    <TextBlock Text="Test 2: " Margin="12,0" /> 

    <toolkit:ListPicker x:Name="lpTest2" Margin="12,0"> 
     <toolkit:ListPicker.Items> 
     <toolkit:ListPickerItem Content="Value 5" /> 
     <toolkit:ListPickerItem Content="Value 6" /> 
     <toolkit:ListPickerItem Content="Value 7" /> 
     <toolkit:ListPickerItem Content="Value 8" /> 
     </toolkit:ListPicker.Items> 
    </toolkit:ListPicker> 
</StackPanel> 
+0

謝謝 - 這確實是解決了我的問題,你可以在上面我自己的答案中看到。 – lhan 2013-03-24 19:55:53

+0

好點,我用手機回覆,所以沒有發現你自己的答案! – 2013-03-24 23:49:39

+0

我會給你,因爲你提供的代碼示例!我在回覆帖子中很懶,所以這對未來任何人來說都會更有幫助。再次感謝! – lhan 2013-03-25 01:04:07