نمایش نتایج 1 تا 16 از 16

نام تاپیک: آموزش WPF (متوسط تا پیشرفته)

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #5

    بخش ششم-Resources-نحوه ی استفاده از Resource ها (قسمت دوم)

    اگر دقت کرده باید در کد قسمت قبل وقتی براش RadialGradientBrush را به خاصیت Background نسبت می دادیم نوع اشاره ما به براش StaticResource بود، این به چه معنی است ؟

    در هنگام اشاره به یک Object که در Resource تعریف شده است،دو نوع طریق اشاره وجود دارد:

    • StaticResource :در این نوع درهنگام ساخته شدن پنجره ، Resource یک بار نسبت داده می شود.
    • DynamicResource :در این نوع ،در هنگام نیاز شئ درون Resource نسبت داده می شود و در صورت تغییر خصوصیات کنترل های که به آن اشاره می کنند نیز تغییر می کنند .

    بگذارید این نوع اشاره ها را با یک مثال بررسی کنیم.در این مثال نوع اشاره دکمه 1 را به DynamicResourceتغییر می دهیم و با کلیک بر روی دکمه 1 رنگ براش RadialGradientBrush تعریف شده در Resource را تغییر می دهیم تا نتیجه را مشاهده کنیم :

    <Window.Resources>
    <RadialGradientBrush x:Key="btnGRBrush" >
    <GradientStop Color="Azure" Offset="0.4"/>
    <GradientStop Color="Peru" Offset="0.55"/>
    <GradientStop Color="PaleGoldenrod" Offset="1"/>
    </RadialGradientBrush>
    </Window.Resources>
    <StackPanel >
    <Button Background="{DynamicResource btnGRBrush}" Margin="5" Click="Button_Click">Button 1</Button>
    <Button Margin="5">Button 2</Button>
    <Button Background="{StaticResource btnGRBrush}" Margin="5">Button 3</Button>
    <Button Margin="5">Button 4</Button>
    </StackPanel>


    Code Behindبه صورت زیر :

    private void Button_Click(object sender, RoutedEventArgs e)
    {
    this.Resources["btnGRBrush"] = new RadialGradientBrush(Colors.BlanchedAlmond ,Colors.Blue);
    }


    با اینکار خروجی به صورت زیر تغییر میکند که تفاوت بین DynamicResource و StaticResource به نمایش در می آید.



    نکته مهم :توجه داشته باشید که در هنگام استفاده از این نوع اشاره ها دقت کنید چون StaticResourceها در هنگام ساخته شدن فرم ساخته شده و نسبت داده شده می شود ولی DynamicResourceتا هنگام نیاز ساخته نمی شوند.سعی کنید از StaticResource هنگامی استفاده کنید که هیج تغییری در آن ها بوجود نمی آید و از DynamicResource هنگامی که در هنگام اجرا تغییر می کنند (به عنوان مثال از دینامیک برای تنظیمات برنامه ای که با تغییر خصوصیات در همان لحظه تغییر ها اعمال می شوند و از استاتیک ها زمانی که با تغییر تنظیمات برنامه نیاز به ریستارت برنامه برای اعمال تغییر می باشد.) .
    آخرین ویرایش به وسیله ali.aghdam : پنج شنبه 27 آبان 1389 در 18:07 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •