دسته بندی ها
14:15 1398/09/07

minimize و maximize کردن پنجره های wpf

مشخصات سوال کننده :
کاربر : rezajavaheri68     امتیاز کاربر : 0     رتبه کاربر : 7040
دسته بندی : WPF

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4438
هوش مصنوعی

پاسخ هوش مصنوعی

برای تشخیص اینکه فنجره WPF مینیمایز شده است و سپس بازگرداندن آن با کلیک روی یک دکمه در فرم دیگر، می توانید از کد زیر استفاده کنید.

در ابتدا، شما نیاز دارید یک همچنین رویداد برای فرم مینیمال خود تعریف کنید که تغییر حالت پنجره را کنترل کند:


using System.Windows;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_StateChanged(object sender, EventArgs e)
    {
        if (this.WindowState == WindowState.Minimized)
        {
            // پنجره مینیمایز شده
        }
    }
}

سپس برای بازگرداندن پنجره به حالت نرمال با استفاده از یک دکمه در فرم دیگر، می توانید از کد زیر استفاده کنید:


private void RestoreWindow(MainWindow mainWindow)
{
    if (mainWindow.WindowState == WindowState.Minimized)
    {
        mainWindow.WindowState = WindowState.Normal;
    }
}

به این ترتیب، می توانید وضعیت پنجره را بررسی کنید و با کلیک روی دکمه در فرم دیگر، پنجره را به حالت نرمال برگردانید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : pedram_khan 19:02 1398/09/07

برای کمینه کردن پنجره ها در Wpf یا همون Minimize کردن فرم می تونید به راحتی از دستور زیر استفاده کنید

 

this.WindowState = WindowState.Minimized;

 

همچنین برای بیشینه کردن پنجره ها در WPF یا همون Maximized کردن پنجره ها می تونید به راحتی از دستور زیر استفاده کنید

 

this.WindowState = WindowState.Maximized;

 

کافیه یه button روی پنجره خودتون قرار بدید و در رویداد کلیک اون قطعه کد بالا رو بنویسید. به این صورت پنجره شما به صورت minimize شده در میاد. حالا اگر بخاید بررسی کنید که آیا پنجره شما یا یکی از فرم های شما minimize یا maximize هست می تونید به صورت زیر کنترل کنید

 

Form1 frm = new Form1;
If (frm.WindowState == WindowState.Minimized)
  {
     frm.WindowState = WindowState.Maximized;
  }

 

با استفاده از کدهای بالا می تونید یک پنجره رو minimize کنید یا اصطلاحا بندازیدپایین و همچنین کنترل کنید که اگر یک فرم کمینه بود به صورت اتوماتیک اون پنجره خاص بزرگ بشه.

 

برای کسب اطلاعات بیشتر در مورد پنجره های WPF و کمینه کردن (Minimized) پنجره ها به این لینک می تونید مراجعه کنید.

همچنین برای کسب اطلاعات بیشتر در مورد پنجره های WPF و بیشینه کردن (Maximized) پنجره ها به این لینک می تونید مراجعه کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 277 رتبه: 6
پاسخ دهنده : Sowgandi 23:31 1398/09/07

با سلام. دوست گرامی برای بازگرداندن تمامی فرم های مینیمایز شده از  دستور زیر استفاده کنید.

  foreach (Window win in System.Windows.Application.Current.Windows)
  {
 if (win.WindowState == WindowState.Minimized)
                    {
                        win.WindowState = WindowState.Normal;
                    }
}

و برای بازگرداندن فرم دلخواه مینیمایز شده از دستور زیر استفاده کنید.

  foreach (Window win in System.Windows.Application.Current.Windows)
  {
 if (win.WindowState == WindowState.Minimized && win.Name == "MyWindow")
                    {
                        win.WindowState = WindowState.Normal;
                    }
}

موفق یاشید.

به این پاسخ امتیاز بدهید    0
امتیاز: 876 رتبه: 3
پاسخ دهنده : rezajavaheri68 20:59 1398/09/10

سلام دستان ممنون بابت راهنمایی.ولی این دستورات که گفته اید وقتی فرم مینیمایز میشه نمیشه نرمال کرد.سوالم به صورت کلی اینه که دیدید وقتی یه فرمی را در برنامه ای باز میکنیم و مینیمایز میکنیم اگه دوباره همون دکمه قبلی را بزنه اگه فرم جدید مینیمایز باشه ان را نرمال میکنه و اگه باز نباشه فرم جدید بازمیکنه.مشکل من در نرمال باز کردن فرم بعد از مینیمایز کردن اسن.

به این پاسخ امتیاز بدهید    0
امتیاز: 0 رتبه: 7040
پاسخ دهنده : Sowgandi 21:49 1398/09/10

دوست عزیز شما برای این کار ابتدا در ویندوی که میخواهید باز شود در قسمت Xaml آن  یک نام به دلخواه به فرم یا پنجره خود بدهید. مثال:

Title="users" Name="MyWindow" Height="376.286" Width="1014.965"   WindowState="Maximized" >

سپس پشت دکمه ای که پنجره را باز می کنید کد زیر رو بنویسید.

  Window mywin = new Window(); // در این قسمت ویندو مورد نظر را تعریف کنید

  bool IsOpen = false;
  foreach (Window win in System.Windows.Application.Current.Windows)
  {
        if (win.Name == "MyWindow")
        {
            IsOpen = true;
            breake;
        }
  }

if(IsOpen == false)
{
  mywin.Show();
}
else
{
  foreach (Window win in System.Windows.Application.Current.Windows)
  {
        if (win.Name == "MyWindow")
        {
           win.WindowState = WindowState.Normal;
        }
  } 
}

 

به این پاسخ امتیاز بدهید    2
امتیاز: 876 رتبه: 3
پاسخ دهنده : rezajavaheri68 18:56 1398/09/16

سلام .ممنون بابت راهنمایی .

به این پاسخ امتیاز بدهید    0
امتیاز: 0 رتبه: 7040
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود