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

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

Threaded View

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

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

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

    کنترل ScrollViewer :

    این کنترل امکاناتی را در اختیار شما قرار می دهد که بتوانید با آن ها، محتوبات این کنترل را مدیریت کنید. چنانچه محتویات داخلی این کنترل از مقدار فضای موجود بر روی ان بیشتر باشد، کنترل به صورت اتوماتیک Scroll پیدا کرده تا بتواند همه محتویات خود را به خوبی در بر گیرد.

    کنترل GroupBox :
    با این کنترل آشنا هستید، این کنترل برای گروه بندی تعدادی از کنترل ها به کار می رود، که نسبت به نسخه 2.0 خود دارابی امکانات بیستری می باشد،که در ادامه بیشتر با این کنترل آشنا خواهید شد.

    کنترل TabControl :
    نمونه این کنترل نیز در نسخه 2.0 دات نت فریم ورک وجود دارد. در اینجا قابلیت های بسیاری به این کنترل اضافه شده است که در جای خود، توضیح داده خواهند شد.

    کنترل Expander :
    این کنترل، همواره یکی از کنترل هایی بوده است که برنامه نویسیان علاقه زیادی به استفاده از آن دارند. این کنترل در دات نت فریم ورک 2.0 و نسخه های قبل از آن وجود نداشت و برنامه نویسان یا اقدام به نوشتن این کنترل می کردند و یا از کنترل های نوشته شده توسط اشخاص ثالث استفاده می کرند. نمونه این کنترل در ویندوز بسیار استفاده شده است.

    حال، در ادامه به توضیح هر یک از این کنترل ها با ذکر مثال هایی در مورد هر یک خواهیم پرداخت:

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

    در این مواقغ از کنترل دیگری به نام کنترل ScrollViewer استفاده می کنیم. این کنترل می توان با هر عنصری به کار رود. زمانی که محتویات این کنترل از فضای موجود، بیشتر شود، این کنترل به صورت اتوماتیک ، محتویات خود را قابل پیمایش کرده و کاربر می تواند با اسکرول کردن، به تمامی محتویات درون کنترل مورد نظر دسترسی داشته باشد.
    به قطعه کد زیر که اصلاح شده تکه کد قبل می باشد توجه کنید:





    <Window x:Class="ContentControlsInWPF.ContentWithScrollVie werFeature"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ContentWithScrollViewerFeature" Height="300" Width="300">
    <Grid>
    <Button VerticalAlignment="Center" HorizontalAlignment="Center">
    <ScrollViewer>
    <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>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">Age</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">Country</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">City</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">State</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">P__Code</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">Address</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <StackPanel Orientation="Horizontal">
    <Label MinWidth="50">Phone</Label>
    <TextBox MinWidth="120"></TextBox>
    </StackPanel>
    <Button>Ok</Button>
    <Image VerticalAlignment="Top" MaxHeight="75" MaxWidth="75" Stretch="Fill" Source="./Images/WPF.jpg"></Image>
    </StackPanel>
    </ScrollViewer>
    </Button>

    </Grid>
    </Window>







    این مثال، مانند مثال قبلی می باشد با این تقاوت که کنترل های بیشتری درون محتوای کنترل Button قرار گرفته اند. علاوه بر این، تمامی محتویات کنترل Button درون کنترل دیگری به نام ScrollViewer قرار گرفته است.
    چنانچه فضای لازم برای نمایش تمامی محتویات کنترل Button موجود باشد، کنترل ScrollViewer غیر فعال می شود و زمانی که فضای لازم برای نمایش کنترل های درونی کنترل Button مجود نباشد، کنترل ScrollViewer به صورت اتوماتیک فعال شده تا بتواند تمامی محتویات کنترل Button را نمایش دهد.
    این کنترل بسیار پر کاربرد می باشد. به این دلیل که علاوه بر اینکه غیر وابستگی برنامه شما به رزولوشن صفحه نمایش حفظ می گردد، باعث می شود که بتوانید تعداد بسیاری از کنترل ها را درون یک کنترل محتوایی قرار دهید.
    نتیجه حاصل از اجرای مثال فوق را در شکل زیر مشاهده می کنید :








    نکته :
    توسط دو خاصیت HorizontalScrollBarVisibility و VerticalScrollBarVisibility می توانید کنترل بیشتری بر روی عملکرد کنترل ScrollViewer داشته باشید. هر یک از این خواص دارای چهار مقدار می باشند که در زیر به توضیح هریک خواهیم پرداخت :

    1-مقدار Auto : این مقدار باعث می شود که نوار های اسکرول ( برای هر کدام که تنظیم شده باشد) در حالتی که غیر فعال هستند، نشان داده نشوند.

    2-مقدار Disabled : این مقدار باعث می شود که نوار های اسکرول همیشه در حالت غیر فعال باشند.

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

    4-مقدار Visible : این گزینه که مقدار پیش فرض برای هر دوخاصیت نیز می باشد، در زمانی که اسکرول در حالت غیر فعال می باشد، همچنان به صورت Visible هستند و کاربر می تواند آن ها را مشاهده نماید.
    آخرین ویرایش به وسیله 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

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


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

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

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