منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[مقال] التعامل مع النوافذ في تقنية WPF - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم البرمجة بتقنية WPF (http://vb4arb.com/vb/forumdisplay.php?fid=86)
+--- الموضوع : [مقال] التعامل مع النوافذ في تقنية WPF (/showthread.php?tid=11615)



التعامل مع النوافذ في تقنية WPF - السندبااد - 06-03-15

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
التعامل مع النوافذ في تقنية 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 
لا أستغني عن ملاحظاتكم وتعقيباتكم
تحياتي لكم ولا تنسونا من دعاءكم



RE: التعامل مع النوافذ في تقنية WPF - Fantastico - 03-06-15

dim window as new windAbout
or
dim windAbout as new window


RE: التعامل مع النوافذ في تقنية WPF - السندبااد - 04-06-15

(03-06-15, 01:09 AM)Fantastico كتب : dim window as new windAbout
or
dim windAbout as new window

السلام عليكم
المتغير لك حرية الاختيار بتسميته ولكن الوصف يجب أن يكون باسم النافذة
لذلك الاصح :
إقتباس :dim window as new windAbout



RE: التعامل مع النوافذ في تقنية WPF - أبو عمر - 27-09-15

اشكرك كثيرا استاذ السندباد
الخاصية 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