2010-09-28 66 views

回答

0

看來您正在使用Canvas Panel來定位Expander和TextBlock。

首先:不要使用Canvas,它是舊式的,而且不夠靈活。使用其他面板之一(即網格)來佈置您的控件。那麼問題就應該消失了。

如果您必須使用Canvas並且要防止重疊,則可以使用Panel.ZOrder附加屬性。您還應該將Expander的Background屬性設置爲不透明,如「White」。默認情況下,Background屬性具有空值,這意味着透明。

0

如果問題是設計時間問題:

WPF會把最後一個項目的XAML之上。舉例來說,如果我有這樣的:

<TextBlock Text="one"/> 
<TextBlock Text="Two"/> 

TextBlock的「二」將顯示在前面的「一」,因爲它是最後的XAML。

如果這是一個運行時問題,bochja將它與Panel.ZOrder放在了一起。

0

這可能是最容易使用網格,所以元素順序無關緊要。

如:

<Grid DataContext="{Binding CurrentRequest,ElementName=root}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="100" /> 
     <ColumnDefinition Width="50"/> 
    </Grid.ColumnDefinitions> 

    <Label Grid.Row="0" Grid.Column="0" Content="These labels"/> 
    <Label Grid.Row="0" Grid.Column="0" Content="Will overlap"/> 

    <Label Grid.Row="1" Grid.Column="0" Content="Next row"/>