2016-04-11 6 views
0

Im Bild unten habe ich den Hintergrund Inhalt des Bildes als Benutzersteuerung und den vorderen Kreis als UserControl. Wenn eine Schaltfläche in der Benutzersteuerung des Hintergrunds geklickt wird, muss ich den Kreis UserControl anzeigen, indem ich ihn nach vorne bringe und den Hintergrund verwische, wie in der Abbildung unten gezeigt. Gerade jetzt in der ersten UserControl im ViewModel habe ich einen Befehl und mache so etwas. Problem ist Fenster wird nicht nach vorne gebracht und ich kann den Hintergrund nicht verwischen. Bitte helfen Sie.Bringen Sie Usercontrol nach vorne, um den Hintergrund transparent zu machen

private void OpenWidget(object obj) 
     { 
      WidgetWindow window = new WidgetWindow(); 
      window.WindowState = WindowState.Maximized; 
      window.WindowStyle = WindowStyle.None; 
      window.Show(); 
      window.BringIntoView(); 
     } 

enter image description here

Antwort

0

ich ein Fenster stattdessen verwenden würde, so etwas wie dieses:

<Window x:Class="YourNamespace.WidgetWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="WidgetWindow" 
    WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" WindowState="Maximized" 
    AllowsTransparency="True" Background="#80000000"> 
    <Grid> 
     <Ellipse Width="300" Height="300" Fill="CornflowerBlue" /> 
    </Grid> 
</Window> 

dann in die Schaltfläche Handler tun, um eine ShowDialog() und stellen die Wirkung des Hauptfensters verschwimmen:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    this.Effect = new BlurEffect(); 
    var dlg = new WidgetWindow(); 
    dlg.Owner = this; 
    dlg.ShowDialog(); 
    this.Effect = null; 
} 

Ergebnis:

012.351.

enter image description here

Offensichtlich werden Sie müssen diese an Ihre spezifischen Anforderungen anzupassen z.B. Verwenden Sie ein UserControl, wenn Sie es nicht im Vollbildmodus möchten, oder verwenden Sie Show() anstelle von ShowDialog(), wenn Sie es nicht model usw. benötigen, aber dies sollte genug sein, um Sie zu beginnen.

+0

Danke Mark es funktioniert :) – nikhil

+1

* Kornblumenblau * [Tyler Durdening intensiviert] – Will

+0

Mark können Sie mir bitte bei dieser Frage helfen. http://stackoverflow.com/questions/37288231/close-current-window-when-parent-usercontrol-is-clicked-wpf?noredirect=1#comment62102538_37288231 – nikhil

Verwandte Themen