[英]how can I make a topmost checkbox wpf C#
所以我有一個主要的 windows 加載一個頁面這個頁面是一個設置頁面,我有最上面的設置,因為我正在使用一個頁面來顯示我所做的按鈕:
if(TopMostCheckBox.IsChecked == true)
{
MainWindow main = new MainWindow();
main.Topmost = true;
}
if(TopMostCheckBox.IsChecked == false)
{
MainWindow main = new MainWindow();
main.Topmost = false;
}
但由於某種原因,當我加載我的程序時,我的復選框沒有選中最頂部,所以我怎樣才能讓我的頁面為我的主 window 切換到最頂部。
作為一個最小的、可重現的示例,以下顯然可以在新創建的 WPF 項目的 MainWindow 代碼隱藏中工作:
XAML:
<Window x:Class="WpfApp1.MainWindow"
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:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<CheckBox Checked="CheckBox_CheckedChanged"
Unchecked="CheckBox_CheckedChanged"/>
</Grid>
</Window>
主窗口.CS:
using System.Windows;
using System.Windows.Controls;
namespace WpfApp1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void CheckBox_CheckedChanged(object sender, RoutedEventArgs e)
{
Topmost = ((CheckBox)sender).IsChecked == true;
}
}
}
您正在創建 mainwindow 的新實例,而不是引用現有實例。
if (TopMostCheckBox.IsChecked == true)
{
var main = Application.Current.MainWindow as MainWindow;
main.Topmost = true;
}
以上假設您沒有為 mainwindow 指定與默認名稱不同的名稱。 你可能會發現你必須設置 topmost false 然后 true 讓它響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.