ورود

View Full Version : انتخاب رنگ



MMRavari
چهارشنبه 12 شهریور 1399, 04:14 صبح
من در ResourceDictionery برای تعیین رنگ انتخابی از دستور زیر استفاده کردم

<Color x:Key="AccentColor" A="{Binding Accent.A}" R="{Binding Accent.R}" G="{Binding Accent.G}" B="{Binding Accent.B}"/>
<SolidColorBrush x:Key="AccentBrush" Color="{Binding AccentColor}"/>

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


<Button Content="Button" Height="25" Width="100" Background="{DynamicResource AccentBrush}"/>

آما ایراد داره ممنون میشم راهنمایی کنید

SajjadKhati
چهارشنبه 12 شهریور 1399, 16:15 عصر
سلام
دو خطِ اول را به کد زیر تغییر بدید :



<Color x:Key="AccentColor" A="255" R="20" G="200" B="250"/>
<SolidColorBrush x:Key="AccentBrush" Color="{Binding Source={StaticResource AccentColor} }"/>




نمیتونید روی اعضا و پروپرتی های شیِ کلاس Color ، بایندینگ (Binnding) تعریف کنید (نمیتونید برای پروپرتی های A و R و G و B از کلاس Color ، بایندینگ ست کنید) .
چون نوع Binding Target ، باید از نوعِ DependencyObject باشه (و از این کلاس ارث بری کرده باشه) (در صورتی که کلاس Color از کلاس DependencyObject ارث بری نکرده) و دوما باید Target Property تون ، یک DependencyProperty باشه (در صورتی که پروپرتی های A و R و G و B ، یک DependencyProperty نیستن) .

MMRavari
چهارشنبه 12 شهریور 1399, 16:33 عصر
میدونم روشی که بکار بردم اشتباهه
اما اگر بخوام رنگ رو بر اساس انتخاب هر کی که از اون استفاده میکنه تنظیم کنم
با چه روشی میشه
یعنی نمیشه رنگ رو با bind کردن تعیین کرد
مرسی

barnamenevisjavan
چهارشنبه 12 شهریور 1399, 20:25 عصر
میدونم روشی که بکار بردم اشتباهه
اما اگر بخوام رنگ رو بر اساس انتخاب هر کی که از اون استفاده میکنه تنظیم کنم
با چه روشی میشه
یعنی نمیشه رنگ رو با bind کردن تعیین کرد
مرسی
شما میخای برای برنامت تم رو پیاده سازی کنی؟ اگر اره شما باید برای هر تم یه فایل رنگ داشته باشی، داخل هرکدوم باید رنگ هارو تعریف کنی با کلید یکسان(ینی فایل الف کلید ایکس، فایل بی هم کلید ایکس)
در نهایت یکی از فایل هارو به عنوان پیشفرض لود میکنی با انتخاب کاربر، دیکشنری فعلی رو حذف و دیکشنری مربوط به رنگ دلخواه رو لود میکنی

SajjadKhati
چهارشنبه 12 شهریور 1399, 22:11 عصر
میدونم روشی که بکار بردم اشتباهه
اما اگر بخوام رنگ رو بر اساس انتخاب هر کی که از اون استفاده میکنه تنظیم کنم
با چه روشی میشه
یعنی نمیشه رنگ رو با bind کردن تعیین کرد
مرسی

خوب همین الان ، اون Color ئه مربوط به شی SolidColorBrush را bind کردین دیگه .
نمیدونم میخواین چی کار کنین ولی اگه نیاز دارین هر وقت مقدار اون Color (که نام کلیدش را AccentColor گذاشتین) را تغییر دادین ، مقدار پروپرتیِ Color ئه مربوط به اون SolidColorBrush (که نام کلیدش را AccentBrush گذاشتین) تغییر کنه ، و اگه به حالت 2 طرفه در binding نیاز ندارین ، بجای binding (برای پروپرتی Color) ، از DynamicResource استفاده کنید .