کنترل ScrollViewer
در پست قبلی دربارۀ این کنترل در حد آشنایی صحبت کردم و توضیحی مختصر دادم خدمتتون، در این پست کمی بیشتر با خواص و کدنویسی و نحوۀ کار باهاش آشنا میشید .
با یک مثال شروع میکنم : در wpf شما در بعضی اوقات نیاز دارید تا از تعداد زیادی کنترل های مختلف روی فرمتون که لازمۀ کارتونم هست استفاده کنید و اینجاست که باید بتونید همۀ اون ها رو روی فرمتون بدرستی نمایش بدید و در اینجا باید به سراغ کنترل ScrollViewer بیاید تا مشکلتونو روی فرم حل کنه ...
این کنترل میتونه با هر عنصری به کار بره، زمانی که محتویات این کنترل از فضای موجود، بیشتر بشه، این کنترل به صورت اتوماتیک، محتویات خودش رو قابل پیمایش کرده و کاربر میتونه با اسکرول کردن، به تمامی محتویات درون کنترل مورد نظر دسترسی داشته باشه .
به کد زیر توجه کنید :
کد PHP:
<Window x:Class="aaa"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="sample" Height="300" Width="450">
<Grid>
<Button VerticalAlignment="Center" HorizontalAlignment="Center">
<ScrollViewer>
<StackPanel>
<Image VerticalAlignment="Top" MaxHeight="75" MaxWidth="75" Stretch="Fill" ></Image>
<TextBlock TextAlignment="Center" >لطفا مقداری را وارد کنید</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" ></Image>
</StackPanel>
</ScrollViewer>
</Button>
</Grid>
</Window>
کنترل های موجود در کدهای بالا رو توضیح دادم در پست های قبلی ...
خب ببینید من 9 تا کنترل TextBox روی فرمم دارم که بدون اگه میخواستم بدون استفاده از ScrollViewer نمایششون بدم مجبور میشدم یا اندازه فرمم رو تغییر بدم که اینم شاید در همون لحظه جزء نیازهای کار من نباشه ، پس در اینجا براحتی با اسکرول کردن تونسم این کارو خیلی قشنگ به پایان ببرم
خروجی به صورت زیر خواهد بود :