私はWPFが初めてです。 window1とwindow2のように2つのウィンドウがあります。私はwindow1に一つのボタンがあります。そのボタンをクリックすると、window2が開きます。私はそのために何をすべきですか?
これが私が試したコードです:
window2.show();
あなたのコードをwindow1
に書いてください。
private void Button_Click(object sender, RoutedEventArgs e)
{
window2 win2 = new window2();
win2.Show();
this.Close();
}
新しいWPFアプリケーションを作成したいと思うでしょう。これが済んだら、.xamlファイルと.csファイルがあるはずです。これらはあなたのメインウィンドウを表しています。サブウィンドウを表すために追加の.xamlファイルと.csファイルを作成します。
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Open Window" Click="ButtonClicked" Height="25" HorizontalAlignment="Left" Margin="379,264,0,0" Name="button1" VerticalAlignment="Top" Width="100" />
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonClicked(object sender, RoutedEventArgs e)
{
SubWindow subWindow = new SubWindow();
subWindow.Show();
}
}
その後、これらのクラスに必要なコードを追加します。
SubWindow.xaml
SubWindow.xaml.cs
private void button1_Click(object sender, RoutedEventArgs e)
{
window2 win2 = new window2();
win2.Show();
}
WPFでは、Show()メソッドとShowDialog()メソッドを使用して、いくつかのオプションがあります。
新しいウィンドウが開いたときに開いているウィンドウを閉じたい場合は、Show()メソッドを使用します。
Window1 win1 = new Window1();
win1.Show();
win1.Close();
ShowDialog()もウィンドウを開きますが、この場合、以前に開いたウィンドウを閉じることはできません。
これは私を助けました:あなたが同じもので余分なウィンドウが欲しい場合に備えて、Ownerメソッドは基本的にウィンドウを別のウィンドウに結び付けます。
LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();
これも考慮してください。
this.WindowState = WindowState.Normal;
this.Activate();
2番目のウィンドウがpublic partial class Window2 : Window
として定義されていると仮定すると、それを行うことができます。
Window2 win2 = new Window2();
win2.Show();
Window1にボタンを作成してダブルクリックすることができます。新しいクリックハンドラが作成されます。内部には次のようなものを書くことができます。
var window2 = new Window2();
window2.Show();
このコードを使うことができます:
private void OnClickNavigate(object sender, RoutedEventArgs e)
{
NavigatedWindow navigatesWindow = new NavigatedWindow();
navigatesWindow.ShowDialog();
}
そのようにして新しいウィンドウのインスタンスを作成する必要があります。
var window2 = new Window2();
インスタンスを取得したら、必要に応じて Show() または ShowDialog() メソッドを使用できます。
window2.Show();
または
var result = window2.ShowDialog();
あなたがそれを必要とするならば、ShowDialog()はNullable<bool>
を返します。