Cara menutup Window yang berisi usercontrol dari code usercontrol yang bersangkutan di project WPF Window adalah dengan code seperti di bawah ini:
parent.Close();
Bagaimana cara menggunakannya dalam sebuah project? Mari kita lihat contoh berikut. Di sini rani udah punya project WPF Window dengan nama WPFSample. Dan dia udah punya 1 file MainWindow1.xaml di dalamnya.
Kemudian rani tambahkan sebuah button dengan nama ButtonCall dengan property seperti code di bawah ini:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFSample"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Button x:Name="ButtonCall" Content="Show" Width="200" Height="50" Click="ButtonCall_Click"/>
</Grid>
</Window>
Yang diwarnai kuning terang adalah perubaannya yah.
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WPFSample"
mc:Ignorable="d"
Background="White"
d:DesignHeight="350" d:DesignWidth="350">
<Grid>
<Button x:Name="ButtonClose" Content="Close" Width="200"
Height="50" Click="ButtonClose_Click" />
</Grid>
</UserControl>
Code-behind:
Lalu di code belakang MainWindow.xaml.cs, rani coba panggil si UserControl yang ditampung dalam sebuah Window dan DockPanel dengan menggunakan code.
using System.Windows;
using System.Windows.Controls;
namespace WPFSample
{
public partial class MainWindow : Window
public MainWindow()
{
InitializeComponent();
}
private void ButtonCall_Click(object sender, RoutedEventArgs e)
{
UserControl1 ctl = new UserControl1();
Window wd = new Window();
DockPanel pnl = new DockPanel();
pnl.HorizontalAlignment = HorizontalAlignment.Stretch;
pnl.VerticalAlignment = VerticalAlignment.Stretch;
pnl.Children.Add(ctl);
wd.Content = pnl;
wd.Height = 350;wd.Width = 350;
wd.ShowDialog();
}
}
}
Dan terakhir di UserControl1.xaml kita tambahkan code untuk menutup window.
Mari kita coba run dan debug.
0 Comments