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

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

Threaded View

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

    بخش چهارم: Content Controls ( کنترل های محتوا) ( قسمت دوم)

    خاصیت Content :
    هر کنترل محتوا، دارای خاصتی به نام Content می باشد. این خاصیت در برگیرنده عناصری خواهد بود که به عنوان محتوای کنترل مورد نظر شناخته می شوند.
    به طور کلی خاصیت Content در کنترل های محتوا، می تواند شامل دو دسته کلی زیر از عناصر WPF باشد:
    الف) دسته اول عناصری هستند که از کلاس UIElement ، ارث بری نمی کنند. در این موارد، متد ToString() فراخوانی شده تا متن آن عنصر را به عنوان محتوای عنصر مورد نظر قرار دهد.

    ب) دسته دم عناصری که از کلاس UIElement ارث بریم می کنند. این عناصر در واقع تمامی عناصر و.یژوال در WPF را شامل می شوند. کمپایلر از متد OnRender این عناصر استفاده می کند تا قابل نمایش در کنترل محتوا با شند.

    برای درک بهتر این موضوع به دو قطعه کد زیر دقت کنید :

     <Button HorizontalAlignment="Center" VerticalAlignment="Center">this a simple text Content</Button>

    کد فوق تنها یک رشته متنی را به عنوان محتوای عنصر Button در نظر گرفته است. این نوع از محتوا، از نوع دسته (الف) می باشد.
    نتیجه اجرای این کد شبیه به شکل زیر خواهد بود:





    در واقع می توان در این حالت، خاصیت Content را به خاصیت Text عناصر در دات نت فریم ورک 2.0 تشبیه کرد. البته دقت داشته باشید که این مورد صرفا یک تشبیه می باشد.

    حال به کد زیر دقت کنید :


     
    <Button>
    <Image Source="./Images/WPF.jpg"></Image>
    </Button>






    کد فوق یک عکس را به عنوان محتوای
    Button معرفی می کند. این نمونه از محتوا، ار نوع دسته (ب) می باشد که با فراخوانی متد OnRender، عکس مورد نظر قابل نمایش در کنترل Button به عنوان محتوا گردیده است.
    نتیجه حاصل از اجرای کد فوق به صورت زیر می باشد:





    دو قطعه کد فوق از ساده ترین، حالت های خاصیت Content بودند. درواقع قدرت این خاصیت بسیار فراتر از قرار گیری یک عکس و یا یک رشته متنی درون آن می باشد. با استفاده از کنترل های کانتینر می توانید کنترل های بسیاری را در یک Button و یا هر کنترل محتوای دیگر قرار دهید.
    به قطعه کد زیر دفت کنید :





         
    <Window x:Class="ContentControlsInWPF.TextAndImageContent"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="TextAndImageContent" Height="300" Width="300">
    <Grid>
    <Button VerticalAlignment="Center" HorizontalAlignment="Center">
    <StackPanel>
    <Image VerticalAlignment="Top" MaxHeight="75" MaxWidth="75" Stretch="Fill" Source="./Images/WPF.jpg"></Image>
    <TextBlock TextAlignment="Center" >Fill Boxes And then Click Ok</TextBlock>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">name</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">Family</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <Button>Ok</Button>
    <Image VerticalAlignment="Top" MaxHeight="75" MaxWidth="75" Stretch="Fill" Source="./Images/WPF.jpg"></Image>
    </StackPanel>
    </Button>
    </Grid>
    </Window>




    در قطعه کد فوق، یک Button در کنترل کانتینر اصلی فرم یعنی گرید قرار گرفته است. در خاصیت Content کنترل Button یک کنترل StackPanel قرار گرفته ایت که خود شامل پنج کنترل فرزند به شزح زیر می باشد:
    ابتدا یک عنصر Image ، در بالاترین قسمت کنترل StackPanel قرار گرفته است. سپس یک کنترل TextBlock با متن Fill Boxes And then Click Ok قرار گرفته است. پس از آن دو کنترل StackPanel داخلی به مجموعه کنترل های فرزند اضافه شده اند.
    هر یک از این دو کنترل StackPanel داخلی خود شامل دو کنترل فرزند می باشند، که به صورت افقی در کنترل کانتینر خود قرار گرفته اند.
    پس از دو کنترل StackPanel داخلی، یک کنترل Button و در نهایت یک عنصر Image دیگر قرار داده شده است.

    نتیجه حاصل از اجرای کد فوق را در شکل زیر مشاهده می کنید:





    همانطور که در شکل فوق نیز مشاهده می کنید، به راحتی می توان با بهره گیری از کنترل های کانتینر، به تعداد دلخواهی از کنترل های WPF را در یک کنترل محتوا قرار داد. از این خاصیت می توان در ساخت کنترل های سفارشی و کنترل های کاربری بهره بسیاری برد.

    آخرین ویرایش به وسیله Mahdi.Kiani : پنج شنبه 30 خرداد 1387 در 13:51 عصر

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


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

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

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