2010-05-03 67 views
0

有沒有什麼辦法讓某些東西出現在組合框的彈出部分之上?WPF:使事物出現在擴展組合框上

Panel.ZIndex似乎沒有幫助 - 彈出部分總是顯示在一切之上!

作爲一個例子,如果你使用下面的代碼,有沒有什麼辦法讓文本塊在擴展時出現在組合框彈出部分的上方?

<Window x:Class="Zindex.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Zindex" Height="350" Width="525"> 
<Grid Name="LayoutRoot" ShowGridLines="True"> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 

    <ComboBox Width="100" Height="24" Grid.Row="0" VerticalAlignment="Bottom"> 
     <ComboBoxItem Content="A" /> 
     <ComboBoxItem Content="B" /> 
     <ComboBoxItem Content="C" /> 
     <ComboBoxItem Content="D" /> 
    </ComboBox> 

    <TextBlock Grid.Row="1" Width="300" TextWrapping="Wrap"> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed volutpat faucibus 
     luctus. Morbi at semper massa. Mauris bibendum, eros in aliquam ultrices, odio 
     purus dignissim sapien, non eleifend leo mi in nulla. Sed risus urna, 
     fringilla vitae pulvinar interdum, consectetur ac sapien. Pellentesque turpis 
     ante, pulvinar quis adipiscing ac, rutrum at purus. Integer ultricies pulvinar 
     consequat. 
    </TextBlock> 
</Grid> 

+1

爲什麼你需要這個?如果你分享這個理由,或許可以有更好的方法來解決它。 – wpfwannabe 2010-05-03 18:57:48

+0

當我想在應用程序中顯示消息時,我使用自定義對話框而不是MessageBox。此自定義對話框不是一個窗口,而是覆蓋其他所有內容的用戶控件。我基於這篇文章的設計/代碼:http://www.codeproject.com/KB/WPF/wpfmodaldialog.aspx 問題是,雖然對話框覆蓋了一切,如果組合框被展開,它將是在對話框的頂部! 如果我的應用程序的用戶選擇了組合框中的某些內容,並且可能會導致問題,則會發生這種情況。然後我將顯示一個對話框,用戶必須確認操作。 – haagel 2010-05-04 06:36:24

回答

0

您需要使用的裝飾器層。那些渲染高於一切,可以配置爲相對於控件或整個窗口進行渲染。