Silverlight - Модель содержимого
Кнопки предлагают форму содержимого для содержимого модели. Модели часто появляются в элементах управления. Идея проста. Он принимает любой контент, а не только текст. Если вы хотите создать действительно экзотическую кнопку, вы можете даже поместить внутрь другие элементы управления содержимым, такие как текстовые поля и кнопки (и вложить в них неподвижные элементы). Сомнительно, чтобы в таком интерфейсе был смысл, но возможно.
Давайте посмотрим на простой пример с кнопкой, внутри кнопки другие элементы управления содержимым.
<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>
Когда приведенный выше код скомпилирован и запущен, вы увидите следующую кнопку.
RangeControl
Полоса прокрутки и ползунки тесно связаны. Оба они позволяют пользователю выбирать входное значение из определенного диапазона. Обычно эти элементы управления означают разные вещи. Полосы прокрутки обычно используются для установки положения в области мошонки, тогда как ползунок используется для указания некоторого значения или настройки. Это просто условности; элементы управления имеют похожее поведение и API.
Регуляторы диапазона просты в использовании. Вы указываете минимальное и максимальное значения, чтобы указать диапазон значений, которые должен представлять ползунок. ВValue свойство будет меняться в зависимости от использования драг.
Иерархическое наследование Slider класс выглядит следующим образом -
Ниже приведены наиболее часто используемые properties из Slider.
Sr. No. | Описание недвижимости |
---|---|
1 | Header Получает или задает содержимое заголовка элемента управления. |
2 | HeaderProperty Определяет свойство зависимости заголовка. |
3 | HeaderTemplate Возвращает или задает DataTemplate, используемый для отображения содержимого заголовка элемента управления. |
4 | HeaderTemplateProperty Идентифицирует свойство зависимостей HeaderTemplate. |
5 | IntermediateValue Возвращает или задает значение ползунка, пока пользователь взаимодействует с ним, до того, как значение будет привязано к значению отметки или шага. Свойство SnapsTo указывает значение ползунка. |
6 | IntermediateValueProperty Идентифицирует свойство зависимостей IntermediateValue. |
7 | IsDirectionReversed Получает или задает значение, указывающее направление увеличения значения. |
8 | IsDirectionReversedProperty Идентифицирует свойство зависимостей IsDirectionReversed. |
9 | IsThumbToolTipEnabled Возвращает или задает значение, определяющее, отображается ли значение ползунка во всплывающей подсказке для компонента Thumb ползунка. |
10 | IsThumbToolTipEnabledProperty Идентифицирует свойство зависимостей IsThumbToolTipEnabled. |
11 | Orientation Получает или задает ориентацию слайдера. |
12 | OrientationProperty Определяет свойство зависимости ориентации. |
13 | StepFrequency Получает или задает часть значения диапазона значений, для которого должны быть созданы шаги. |
14 | StepFrequencyProperty Идентифицирует свойство зависимости StepFrequency. |
15 | ThumbToolTipValueConverter Получает или задает логику преобразователя, которая преобразует значение диапазона ползунка в содержимое подсказки. |
16 | ThumbToolTipValueConverterProperty Идентифицирует свойство зависимостей ThumbToolTipValueConverter. |
17 | TickFrequency Получает или задает приращение диапазона значений, для которого должны быть созданы отметки. |
18 | TickFrequencyProperty Идентифицирует свойство зависимостей TickFrequency. |
19 | TickPlacement Возвращает или задает значение, указывающее, где рисовать деления по отношению к дорожке. |
20 | TickPlacementProperty Идентифицирует свойство зависимостей TickPlacement. |
Ниже приведены наиболее часто используемые events в Slider класс.
Sr. No. | Описание события |
---|---|
1 | ManipulationCompleted Происходит после завершения манипуляции с UIElement. (Унаследовано от UIElement) |
2 | ManipulationDelta Происходит, когда устройство ввода меняет положение во время манипуляции. (Унаследовано от UIElement) |
3 | ManipulationInertiaStarting Происходит, когда устройство ввода теряет контакт с объектом UIElement во время манипуляции и начинается инерция. (Унаследовано от UIElement) |
4 | ManipulationStarted Происходит, когда устройство ввода начинает манипуляции с UIElement. (Унаследовано от UIElement) |
5 | ManipulationStarting Происходит при первом создании обработчика манипуляций. (Унаследовано от UIElement) |
6 | ValueChanged Происходит при изменении значения диапазона. (Унаследовано от RangeBase) |
Ниже приведены наиболее часто используемые methods in Класс слайдера.
Sr. No. | Метод и описание |
---|---|
1 | OnManipulationCompleted Вызывается до возникновения события ManipulationCompleted. (Унаследовано от Control) |
2 | OnManipulationDelta Вызывается до возникновения события ManipulationDelta. (Унаследовано от Control) |
3 | OnManipulationInertiaStarting Вызывается до возникновения события ManipulationInertiaStarting. (Унаследовано от Control) |
4 | OnManipulationStarted Вызывается до возникновения события ManipulationStarted. (Унаследовано от Control) |
5 | OnManipulationStarting Вызывается до возникновения события ManipulationStarting. (Унаследовано от Control) |
6 | OnMaximumChanged Вызывается при изменении свойства Maximum. (Унаследовано от RangeBase) |
7 | OnMinimumChanged Вызывается при изменении свойства Minimum. (Унаследовано от RangeBase) |
8 | OnValueChanged Запускает перенаправленное событие ValueChanged. (Унаследовано от RangeBase) |
9 | SetBinding Присоединяет привязку к FrameworkElement, используя предоставленный объект привязки. (Унаследовано от FrameworkElement) |
10 | SetValue Устанавливает локальное значение свойства зависимости для DependencyObject. (Унаследовано от DependencyObject) |
пример
Давайте посмотрим на простой пример, в котором добавлены ползунок и эллипс, и ползунок управляет шириной эллипса.
<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>
Ниже приводится value changed event реализация - C #.
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;
}
}
}
}
Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий результат. Как видите, при перемещении ползунка слева направо ширина эллипса увеличивается.