تمام سوالات سوالات بدون پاسخ سوال بپرسید

سلام شاید این سوال من کمی مبتدیانه باشه ولی فکر کنم سوال خیلی ها باشه یا لااقل بوده ، من در یک کتاب خوندم که Name و x:Name هیچ فرقی با هم ندارند واقعا همینطوره؟

4 پاسخ

این طور که من توی این سایت دیدم با هم فرقی نمی کنه و وقتی که در شناسایی Name ابهام وجود داشته باشه از این روش استفاده می شه برای اطلاعات بیشتر می توانید از این آدرس کمک بگیرید. http://social.msdn.microsoft.com/Forums/en-US/wpf

3

ارجاع خوبیه ولی اگر بیشتر همینجا توضیح بدین بهتره.

(28 فوریه '12, 19:11) ir01 ♦♦

فکر کنم این چند خط جواب رو برسونه :
در FrameworkElement ( و تمام عناصری که از اون ارث می برند) فیلد Name وجود داره و به x:Name مپ میشه.
یعنی وقتی از مشتقات FrameworkElement استفاده میشه، در حالت عادی فرقی بین Name و x:Name نیست.
تفاوتشون در ارجاع دادن به عناصر و استفاده از کنترلهای شخصی هست .
مثلاً وقتی یک user control در همون اسمبلی ای که فایل xaml وجود داره استفاده بشه، نمی تونیم از Name استفاده کنیم!؟ و باید از x:Name استفاده کرد.


ببینید، بعضی کلاس ها خودشون property ای به نام Name دارند، در این صورت استفاده از x:Name فرقی با Name نداره و x:Name به Name مپ میشه. یعنی با استفاده از x:Name در کلاس هایی که Name دارند، خود کامپایلر Name رو مقدار دهی میکنه. اما اگر کلاسی Name نداشته باشه، داستان فرق داره، در این حالت یک attribute به کلاس اضافه می کنه که باعث میشه در زمان اجرا، یک Name به این شی اختصاص داده بشه (در حالی که property ای به این اسم وجود نداشته). و این Name که به صورت run-time اضافه شده، برای همه اشیا قابل درک نخواهد بود، بلکه برای اشیای کلاس هایی قابل درک هست که داخل namespace مشخص شده با xmlns:x قرار دارند. بیشتر از این تکنیک تو storyboard ها استفاده میشه، چرا که میشه با استفاده از این، برای اشیایی که نام ندارند، نام اختصاص داد و storyboard هم چون همه اشیا رو با نام دنبالشون میگرده و پیدا میکنه میتونه همه اشیا رو animate کنه.


تا اونجایی که من خوندم، ابتدای معرفی WPF خاصیت Name وجود داشته و بعدا خاصیت X:Name به عنوان جایگزین وارد WPF شد. در واقع این مورد جزو روند تکمیل WPF بوده.
موارد دیگه ای هم هست که به نظر من جزو موارد نقص WPF است. مثل BitmapEffect که در ابتدا وجود داشته و الان هنوز به عنوان قابلیت سازگاری حفظ شده ولی بعضی از مواردش مثل OuterGlow دیگه کار نمیکنه.

جایگزینش Effect است (BitmapEffect افکتها رو بصورت نرم افزاری ارائه میده در حالیکه Effect بصورت سخت افزاری پشتیبانی میشه) بهتر اینه که از x:Name استفاده کنی چون جدیدتره

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×137
  • ×54
  • پرسیده شده: 27 فوریه '12, 12:56
  • بازدید: 3,205 بار
  • آخرین بروزرسانی: 29 فوریه '12, 22:27

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

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


توسط RSS:

پاسخها

پاسخها و نظرها