منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : التعامل مع النوافذ في تقنية WPF
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
التعامل مع النوافذ في تقنية WPF

تختلف طريقة التعامل مع النوافذ في تقنية WPF عما كان معتاداً في فيجوال بيسك 6 أو فيجوال دوت نت ، وسنشرح من خلال هذا الدرس كيف سنقوم بفتح نافذة ما ، وسنتطرق لكيفية إغلاق النافذة النشطة الحالية ، أو إغلاق نافذة من خلال نافذة أخرى :
أولاً : فتح نافذة :
لنفرض أن عندي نافذة باسم WindAbout وأريد استدعاءها من خلال زر ما ، أقوم بما يلي :
أضع بداية متغيراً لتعريف النافذة وليكن :
PHP كود :
Dim window As New WindAbout 
ثم إن أردت أن تكون النافذة الجديدة فوق النافذة الحالية وضعت هذا الكود :
PHP كود :
window.Owner Me 
وأخيراً كود إظهار النافذة :
PHP كود :
window.ShowDialog 
ثانياً : إغلاق النافذة الحالية :
المسألة بسيطة جداً ويكفي هذا الكود الصغير :
PHP كود :
Me.Close 
ثالثاً : إغلاق نافذة من خلال نافذة أخرى :
أفضل طريقة هي أن نقوم بإنشاء حلقة لكل النوافذة في البرنامج ثم ومن خلال الحلقة نغلق النافذة التي نريدها ، ولنفرض في البرنامج لدي نافذة مفتوحة باسم WinChKWinner وأريد أن أغلقها من خلال نافذة أخرى فأقوم بإنشاء هذه الحلقة :

PHP كود :
        For Each win In Application.Current.Windows
              If win
.Name "WinChKWinner" Then      
                win
.Close         
            End 
If     
        Next 
لا أستغني عن ملاحظاتكم وتعقيباتكم
تحياتي لكم ولا تنسونا من دعاءكم
dim window as new windAbout
or
dim windAbout as new window
(03-06-15, 01:09 AM)Fantastico كتب : [ -> ]dim window as new windAbout
or
dim windAbout as new window

السلام عليكم
المتغير لك حرية الاختيار بتسميته ولكن الوصف يجب أن يكون باسم النافذة
لذلك الاصح :
إقتباس :dim window as new windAbout
اشكرك كثيرا استاذ السندباد
الخاصية Name
لم تفلح معي في اغلاق النافذة الاخرى من خلال نافذة مفتوحة ولكن title ضبط
#C
private void button1_Click(object sender, RoutedEventArgs e)
{
foreach (Window win in Application.Current.Windows)
{
if (win.Title == "Window1")
{
win.Close();
}
}
}

VB
Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
For Each win As Window In Application.Current.Windows
If win.Title = "Window1" Then
win.Close()
End If
Next
End Sub