2015-03-30 3 views
0

У меня есть простое приложение WPF с двумя кнопками. Это код в моем файле XAML:Измените ZIndex на два элемента

<Grid x:Name="grigliaPulsantiBody" Visibility="Visible" 
     Grid.Column="1" Grid.Row="0" Panel.ZIndex="2" 
     HorizontalAlignment="Center" VerticalAlignment="Center" 
     Width="Auto" Height="Auto"> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="Auto" /> 
    <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 

    <!--PRIMA RIGA--> 
    <Button x:Name="buttonLookNao" Content="Guarda NAO negli occhi" 
     Grid.Column="0" Grid.Row="0" 
     Click="button_Click" Width="200" Height="100" Background="Red" /> 

    <Button x:Name="buttonLookParent" Content="Guarda Genitore negli occhi" 
     Grid.Column="1" Grid.Row="1" 
     Click="button_Click" Width="200" Height="100" Background="Green"/> 
    <!--FINE PRIMA RIGA--> 
</Grid> 

Это еще один элемент управления, который я должен создать:

<local:RiepilogoEsercizio x:Name="riepilogoEsercizio" VerticalAlignment="Top" HorizontalAlignment="Right" 
    Margin="0,-600,180,0" Panel.ZIndex="0" 
    Grid.Row="0" Grid.Column="0" Visibility="Hidden"/> 

Если я нажимаю на кнопки, elemt «riepilogoEsercizio» изменить свою ZIndex, так что я имеют это

Canvas.SetZIndex(riepilogoEsercizio, 999); 

Это нормально. Теперь я хочу скрыть этот элемент. Я использую этот код:

private void annullaBoxUscita(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
    myLoadBoxRiepilogoAnimation.From = 1.0; 
    myLoadBoxRiepilogoAnimation.To = 0.0; 
    //mostro la finestra dei risultati dell esercizio 
    Storyboard.SetTargetName(myLoadBoxRiepilogoAnimation, riepilogoEsercizio.Name); 
    Storyboard.SetTargetProperty(myLoadBoxRiepilogoAnimation, new PropertyPath(UIElement.OpacityProperty)); 
    //riepilogoEsercizio.labelTempo.Content = gioco.tempoEsecuzioneEsercizio; 
    //riepilogoEsercizio.labelRisposteEsatte.Content = gioco.numeroRisposteCorrette; 
    //riepilogoEsercizio.labelTentativi.Content = gioco._numeroTentativi; 
    //riepilogoEsercizio.Visibility = Visibility.Visible; 

    Canvas.SetZIndex(riepilogoEsercizio, -800); 
    Canvas.SetZIndex(grigliaPulsantiBody, 2); 
    myStoryboardBoxRiepilogo.Begin(this); 
    riepilogoEsercizio.IsEnabled = false; 
    } 
    catch (Exception exc) 
    { 
    log.Error("ButtonEsci_Click: ", exc); 
    this.Close(); 
    Process.GetCurrentProcess().Kill(); 
    } 
} 

Этот код работает, элемент «riepilogoEsercizio» скрыт, но я не могу нажать на второй кнопке «buttonLookParent», потому что элемент «riepilogoEsercizio» скрыт, но именно по этому кнопка. Я пытаюсь изменить параметр ZIndex, но не найден.

+0

Попробуйте установить '' Visiblity'' 'Collapsed''. –

+0

works :) спасибо – bircastri

+0

Добавил это как ответ. Примите это, чтобы другие могли учиться на этом. –

ответ

2

Установите Visibility на номер Collapsed.

0

Проблема в том, что у вас есть разные панели, у вас есть Canvas, и у вас есть Grid. В сетке у вас есть кнопки, а на холсте - элемент управления, который вы хотите отобразить/скрыть. Свойство Panel.Zindex работает для элементов, находящихся на одной панели, поэтому в этом случае уменьшение значения zindex не будет работать. Решением для этого является установка свойства Visibility на Collapsed (например, :Nikhil Agrawal), таким образом визуальный элемент будет вести себя, как если бы он не был в визуальном дереве.

Отверстие это помогает ...

Смежные вопросы