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

سلام،
من یک UserControl درست کردم که توش یک لایه از نوع Canvas تعریف کردم. این لایه قراره هم عرض بشه با کل UserControl . بنابراین من خاصیت Width این لایه رو برابر مقدار زیر قرار دادم:

Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}, Path=ActualWidth}"

حالا مشکلی که وجود داره اینه که الحاق ActualWidth درست عمل نمیکنه!
با تحقیق بیشتر، متوجه شدم که DP مربوط به ActualWidth (به نام ActualWidthProperty ) مقدار غلطی رو نشون میده (NaN) در حالی که خود ActualWidth در کدهای C# مقدار درست رو نشون میده. یعنی از طریق کدهای C# میتونم مقدار درست رو ببینم اما دیگه در XAML امکان Binding رو ندارم.
شما چه راه حلی رو پیشنهاد می‌کنید؟

2 پاسخ

سلام نیازی به Binding نیست شما میتونید خاصیت طول و عرض Canvas رو برابر Auto قرار بدید و از نظر عمودی و افقی Stretch کنید (در حقیقت در کد برای انها مقداری ننویسید) این امر باعث بزرگ و کوچک شدن Canvas به تناسب با اندازه UserControl میشه

<UserControl
x:Name="UserControl"
d:DesignWidth="139" d:DesignHeight="86">
<Canvas Background="Black"/>

اگر اسرار به استفاده از Binding دارید کد صحیح اون بشکل زیر است

<Canvas Background="Black" Width="{Binding Width, ElementName=UserControl}"/>

در این مورد حق با شماست، ولی به طور کلی چی؟ موقعیتی رو فرض کنید که مثلا یک Label روی UC داشته باشیم که بخواهد مثلا اندازه واقعی عرض فرم پدر رو چاپ کنه. متوجه هستید... منظورم Binding یک خاصیت از پدر، در UC (فرزند) است. فرم فرزند مقدار NaN دریافت می‌کند.

(04 ژانویه '13, 07:34) _Ant Eater_

سلام. آقا من الان دقیقا الان حضور ذهن ندارم ولی فکر می کنم کنواستو بزار توی یک گرید و عرض واقعی گرید رو بهش بده. در ضمن محلی که uc تو توش استفاده می کنی خیلی مهمه.

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
  • ×37
  • پرسیده شده: 05 مه '12, 23:48
  • بازدید: 2,843 بار
  • آخرین بروزرسانی: 11 اوت '13, 21:47

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

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


توسط RSS:

پاسخها

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