עבור לתוכן

X: בWPF

Featured Replies

פורסם

התחלתי ללמוד בעזרת מדריך WPF והם מסבירים פה על הקידומת X שלא הכי נפל לי האסימון :)

אשמח לעזרה

זה מה שהם רושמים על זה

<Window x:Class="WindowsApplication1.Window1"

The x namespace prefix places the Class attribute in the XAML namespace, which means this is a

more general part of the XAML language

לא הבנתי בדיוק מה התפקיד שלו....

ועוד דבר גם לא הבנתי כל כך מה התפקיד של השורות האלה


xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"


לפי מה שהבנתי השורות האלה זה כמו לעשות using system?

אני בעצם מקשר את הטופס שלי לספריות על מנת שהוא יבין את התגיות שבטופס? ומה ההבדל בניהם? מה ההבדל בין xmlns:x ל xmlns

פורסם

כן, זה מנגנון namespace (מרחב שמות) שנועד למנוע התנגשויות (ככה שאם אתה ומפתח אחר יוצרים מחלקה ובמקרה משתמשים באותו שם, לא תהיה בעיה), בדומה ל-namespace ו-using ב-#C.

ההגדרה הזו:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

מגדירה namespace בשם x. המחרוזת זה url שמייצג את השם ה"אמיתי" של ה-namespace הזה. דהיינו, כשאתה יוצר אלמנט בשם x:Class אתה בעצם אומר שזה Class ששייך למרחב השמות http://schemas.microsoft.com/winfx/2006/xaml (ה-url עצמו הוא רק ייצוגי, לא צריך באמת להיות דף אמיתי מאחורי בכתובת הזו).

xmlns בלי נקודתיים מגדירה את מרחב השמות הדיפולטי, כלומר כל אלמנט בלי :x לפניו צריך להיות שייך אליו. דהיינו בדוגמה שלך האלמנט Window שייך למרחב השמות http://schemas.microsoft.com/winfx/2006/xaml/presentation.

בגדול מרחב השמות שמסומן ב-x כאן הוא זה שמכיל את כל האלמנטים שמוגדרים ב-xaml, והמרחב השמות הדיפולטי הוא האלמנטים שמוגדרים ב-wpf (טכנולוגיה ספציפית שמשתמשת ב-xaml, מסתבר שיש עוד אחרות).

נערך על-ידי שניצל

פורסם
  • מחבר

אז לפי מה שאני מבין יש לי 2 מרחבי שמות, אלה עם X ואלה בלי X , למה זה טוב בכלל? למה לא לעשות הכל תחת namespace אחד

כמו using system

פורסם

בדיוק מה שאמרתי קודם - xaml ו-wpf הם שני דברים נפרדים, ליתר דיוק wpf היא טכנולוגיה ספציפית שמשתמשת ב-xaml. מרחב השמות x משמש לדברים הכלליים של xaml, ומרחב השמות הדיפולטי משמש לדברים הספציפיים ל-wpf.

גם ב-#C יש לך כל מיני מרחבי שמות שונים - יש את System.Collections שמכיל מחלקות של אוספים (List, Dictionary וכו'), יש את System.IO שמכיל מחלקות שעוסקות בקלט ופלט, וכד'.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים