Silverlight - İçerik Modeli
Düğmeler, model içeriğine bir içerik biçimi sunar. Modeller kontrollerde çok şey ortaya çıkarır. Fikir basit. Yalnızca metni değil, tüm içeriği kabul eder. Gerçekten egzotik bir düğme oluşturmak istiyorsanız, metin kutuları ve düğmeler gibi diğer içerik kontrollerini bile içine yerleştirebilirsiniz (ve bunların içine hareketsiz öğeleri yerleştirebilirsiniz). Böyle bir arayüzün çok anlamlı olacağı şüphelidir, ancak bu mümkündür.
Düğme içinde, diğer içerik kontrolleriyle birlikte basit bir örneğe göz atalım.
<UserControl x:Class = "ContentModel.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<Button Margin = "3" Height = "70" Width = "215">
<Grid Margin = "5">
<Polygon Points = "100,25 125,0 200,25 125,50" Fill = "LightSteelBlue" />
<Polygon Points = "100,25 75,0 0,25 75,50" Fill = "LightGray"/>
</Grid>
</Button>
</Grid>
</UserControl>
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki düğmeyi göreceksiniz.

RangeControl
Kaydırma çubuğu ve kaydırıcı kontrolleri yakından ilişkilidir. Her ikisi de kullanıcının belirli bir aralıktan bir giriş değeri seçmesine izin verir. Geleneksel olarak, bu kontroller farklı şeyleri ifade eder. Kaydırma çubukları normalde pozisyonu bir skrotal alana ayarlamak için kullanılırken, kaydırıcı bir değer veya ayar belirtmek için kullanılır. Bunlar sadece geleneklerdir; kontrollerin benzer davranışları ve API'leri vardır.
Aralık kontrollerinin kullanımı basittir. Kaydırıcının temsil etmesini istediğiniz değer aralığını belirtmek için minimum ve maksimum değerleri belirtirsiniz. Value özellik, dragların kullanımına göre değişiklik gösterecektir.
Hiyerarşik miras Slider sınıf aşağıdaki gibidir -

Aşağıda verilenler yaygın olarak kullanılanlardır properties nın-nin Slider.
Sr. No. | Özellik ve Açıklama |
---|---|
1 | Header Denetimin başlığının içeriğini alır veya ayarlar. |
2 | HeaderProperty Üstbilgi bağımlılığı özelliğini tanımlar. |
3 | HeaderTemplate Denetimin başlığının içeriğini görüntülemek için kullanılan DataTemplate alır veya ayarlar.Gets or sets the DataTemplate used to display the content of the control's header. |
4 | HeaderTemplateProperty HeaderTemplate bağımlılık özelliğini tanımlar. |
5 | IntermediateValue Değer onay ya da adım değerine yapıştırılmadan önce kullanıcı onunla etkileşim halindeyken Slider değerini alır veya ayarlar. SnapsTo özelliği, kaydırıcının değerini belirtir. |
6 | IntermediateValueProperty IntermediateValue bağımlılık özelliğini tanımlar. |
7 | IsDirectionReversed Artan değerin yönünü gösteren bir değer alır veya ayarlar. |
8 | IsDirectionReversedProperty IsDirectionReversed bağımlılık özelliğini tanımlar. |
9 | IsThumbToolTipEnabled Slider öğesinin Thumb bileşeni için kaydırıcı değerinin bir araç ipucunda gösterilip gösterilmediğini belirleyen bir değer alır veya ayarlar. |
10 | IsThumbToolTipEnabledProperty IsThumbToolTipEnabled bağımlılık özelliğini tanımlar. |
11 | Orientation Bir Slider öğesinin yönlendirmesini alır veya ayarlar. |
12 | OrientationProperty Oryantasyon bağımlılığı özelliğini tanımlar. |
13 | StepFrequency Adımların oluşturulması gereken bir değer aralığının değer bölümünü alır veya ayarlar. |
14 | StepFrequencyProperty StepFrequency bağımlılık özelliğini tanımlar. |
15 | ThumbToolTipValueConverter Slider'ın aralık değerini araç ipucu içeriğine dönüştüren dönüştürücü mantığını alır veya ayarlar. |
16 | ThumbToolTipValueConverterProperty ThumbToolTipValueConverter bağımlılık özelliğini tanımlar. |
17 | TickFrequency Onayların oluşturulması gereken değer aralığının artışını alır veya ayarlar. |
18 | TickFrequencyProperty TickFrequency bağımlılık özelliğini tanımlar. |
19 | TickPlacement İzle ilişkili olarak çentik işaretlerinin nereye çizileceğini gösteren bir değer alır veya ayarlar. |
20 | TickPlacementProperty TickPlacement bağımlılık özelliğini tanımlar. |
Aşağıda verilenler yaygın olarak kullanılanlardır events içinde Slider sınıf.
Sr. No. | Etkinlik Açıklaması |
---|---|
1 | ManipulationCompleted UIElement üzerinde bir manipülasyon tamamlandığında oluşur. (UIElement'ten devralındı) |
2 | ManipulationDelta Bir manipülasyon sırasında giriş cihazı konum değiştirdiğinde oluşur. (UIElement'ten devralındı) |
3 | ManipulationInertiaStarting Giriş cihazı, bir manipülasyon sırasında UIElement nesnesiyle teması kaybettiğinde ve eylemsizlik başladığında oluşur. (UIElement'ten devralındı) |
4 | ManipulationStarted Bir giriş cihazı UIElement üzerinde bir manipülasyon başlattığında oluşur. (UIElement'ten devralındı) |
5 | ManipulationStarting Manipülasyon işlemcisi ilk oluşturulduğunda gerçekleşir. (UIElement'ten devralındı) |
6 | ValueChanged Aralık değeri değiştiğinde gerçekleşir. (RangeBase'den devralındı) |
Aşağıda verilenler yaygın olarak kullanılanlardır methods in Slider sınıfı.
Sr. No. | Yöntem ve Açıklama |
---|---|
1 | OnManipulationCompleted ManipulationCompleted olayı gerçekleşmeden önce çağrılır. (Control'den devralındı) |
2 | OnManipulationDelta ManipulationDelta olayı gerçekleşmeden önce çağrılır. (Control'den devralındı) |
3 | OnManipulationInertiaStarting ManipulationInertiaStarting olayı gerçekleşmeden önce çağrılır. (Control'den devralındı) |
4 | OnManipulationStarted ManipulationStarted olayı gerçekleşmeden önce çağrılır. (Control'den devralındı) |
5 | OnManipulationStarting ManipulationStarting olayı gerçekleşmeden önce çağrılır. (Control'den devralındı) |
6 | OnMaximumChanged Maksimum özelliği değiştiğinde çağrılır. (RangeBase'den devralındı) |
7 | OnMinimumChanged Minimum özelliği değiştiğinde çağrılır. (RangeBase'den devralındı) |
8 | OnValueChanged ValueChanged yönlendirilmiş olayını tetikler. (RangeBase'den devralındı) |
9 | SetBinding Sağlanan bağlama nesnesini kullanarak FrameworkElement'e bir bağlama ekler. (FrameworkElement'ten devralındı) |
10 | SetValue Bir DependencyObject üzerindeki bir bağımlılık özelliğinin yerel değerini ayarlar. (DependencyObject'ten devralındı) |
Misal
Bir kaydırıcının ve bir elipsin eklendiği ve kaydırıcının elipsin genişliğini kontrol ettiği basit bir örneğe bakalım.
<UserControl x:Class = "SliderExample.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "
http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d" d:DesignWidth = "640" d:DesignHeight = "480">
<Grid x:Name = "LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height = "Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Slider Minimum = "1" Maximum = "400" Value = "1"
ValueChanged = "Slider_ValueChanged" />
<Ellipse Grid.Row = "1" Fill = "Aqua" Width = "1" x:Name = "myEllipse" />
</Grid>
</UserControl>
Aşağıda verilen value changed event C # uygulamasıdır.
using System.Windows;
using System.Windows.Controls;
namespace SliderExample {
public partial class MainPage : UserControl {
public MainPage() {
InitializeComponent();
}
private void Slider_ValueChanged(object sender,
RoutedPropertyChangedEventArgs<double> e) {
if (myEllipse != null) {
myEllipse.Width = e.NewValue;
}
}
}
}
Yukarıdaki kod derlendiğinde ve çalıştırıldığında, aşağıdaki çıktıyı göreceksiniz. Gördüğünüz gibi kaydırıcıyı soldan sağa hareket ettirdiğinizde elips genişliği artar.
