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; 
            } 
      } 
   } 
}

Когда приведенный выше код скомпилирован и выполнен, вы увидите следующий результат. Как видите, при перемещении ползунка слева направо ширина эллипса увеличивается.