Silverlight - Mô hình nội dung

Các nút cung cấp một dạng nội dung cho nội dung mô hình. Các mô hình có rất nhiều điều khiển. Ý tưởng là đơn giản. Nó sẽ chấp nhận bất kỳ nội dung nào và không chỉ văn bản. Nếu bạn muốn tạo một nút thực sự kỳ lạ, bạn thậm chí có thể đặt các điều khiển nội dung khác như hộp văn bản và nút bên trong (và lồng các phần tử tĩnh bên trong những nút này). Người ta nghi ngờ rằng một giao diện như vậy sẽ có nhiều ý nghĩa, nhưng nó hoàn toàn có thể.

Chúng ta hãy xem một ví dụ đơn giản với nút, nút bên trong các điều khiển nội dung khác.

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

Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy nút sau.

RangeControl

Thanh cuộn và điều khiển thanh trượt có liên quan chặt chẽ với nhau. Cả hai đều cho phép người dùng chọn một giá trị đầu vào từ một phạm vi cụ thể. Thông thường, những điều khiển này biểu thị những điều khác nhau. Thanh cuộn thường được sử dụng để đặt vị trí thành vùng cuộn trong khi thanh trượt được sử dụng để chỉ định một số giá trị hoặc cài đặt. Đây chỉ là những quy ước; các điều khiển có các hành vi và API tương tự.

Các điều khiển phạm vi rất dễ sử dụng. Bạn chỉ định giá trị tối thiểu và tối đa để chỉ ra phạm vi giá trị mà bạn muốn thanh trượt đại diện. CácValue tài sản sẽ khác nhau khi việc sử dụng kéo khác nhau.

Sự kế thừa thứ bậc của Slider lớp như sau -

Dưới đây là các properties của Slider.

Sr không. Kê khai tài sản
1

Header

Lấy hoặc đặt nội dung cho tiêu đề của điều khiển.

2

HeaderProperty

Xác định thuộc tính phụ thuộc Header.

3

HeaderTemplate

Lấy hoặc đặt DataTemplate được sử dụng để hiển thị nội dung của tiêu đề điều khiển.

4

HeaderTemplateProperty

Xác định thuộc tính phụ thuộc HeaderTemplate.

5

IntermediateValue

Lấy hoặc đặt giá trị của Thanh trượt trong khi người dùng đang tương tác với nó, trước khi giá trị được gắn vào giá trị đánh dấu hoặc bước. Thuộc tính SnapsTo chỉ định giá trị của thanh trượt.

6

IntermediateValueProperty

Xác định thuộc tính phụ thuộc IntermediateValue.

7

IsDirectionReversed

Nhận hoặc đặt một giá trị cho biết hướng tăng giá trị.

số 8

IsDirectionReversedProperty

Xác định thuộc tính phụ thuộc IsDirectionReversed.

9

IsThumbToolTipEnabled

Lấy hoặc đặt một giá trị xác định xem giá trị thanh trượt có được hiển thị trong một mẹo công cụ cho thành phần Ngón cái của Thanh trượt hay không.

10

IsThumbToolTipEnabledProperty

Xác định thuộc tính phụ thuộc IsThumbToolTipEnabled.

11

Orientation

Lấy hoặc đặt hướng của Thanh trượt.

12

OrientationProperty

Xác định thuộc tính phụ thuộc Định hướng.

13

StepFrequency

Lấy hoặc đặt phần giá trị của phạm vi giá trị mà các bước sẽ được tạo.

14

StepFrequencyProperty

Xác định thuộc tính phụ thuộc StepFrequency.

15

ThumbToolTipValueConverter

Nhận hoặc đặt logic chuyển đổi chuyển đổi giá trị phạm vi của Thanh trượt thành nội dung mẹo công cụ.

16

ThumbToolTipValueConverterProperty

Xác định thuộc tính phụ thuộc ThumbToolTipValueConverter.

17

TickFrequency

Nhận hoặc đặt gia số của phạm vi giá trị mà tick sẽ được tạo.

18

TickFrequencyProperty

Xác định thuộc tính phụ thuộc TickFrequency.

19

TickPlacement

Nhận hoặc đặt một giá trị cho biết vị trí cần vẽ dấu tích liên quan đến bản nhạc.

20

TickPlacementProperty

Xác định thuộc tính phụ thuộc TickPlacement.

Dưới đây là các events trong Slider lớp học.

Sr không. Sự kiện & Mô tả
1

ManipulationCompleted

Xảy ra khi một thao tác trên UIElement hoàn tất. (Kế thừa từ UIElement)

2

ManipulationDelta

Xảy ra khi thiết bị đầu vào thay đổi vị trí trong khi thao tác. (Kế thừa từ UIElement)

3

ManipulationInertiaStarting

Xảy ra khi thiết bị đầu vào mất liên lạc với đối tượng UIElement trong quá trình thao tác và bắt đầu quán tính. (Kế thừa từ UIElement)

4

ManipulationStarted

Xảy ra khi thiết bị đầu vào bắt đầu thao tác trên UIElement. (Kế thừa từ UIElement)

5

ManipulationStarting

Xảy ra khi bộ xử lý thao tác được tạo lần đầu tiên. (Kế thừa từ UIElement)

6

ValueChanged

Xảy ra khi giá trị phạm vi thay đổi. (Được kế thừa từ RangeBase)

Dưới đây là các methods in Lớp trượt.

Sr không. Phương pháp & Mô tả
1

OnManipulationCompleted

Được gọi trước khi sự kiện ManipulationCompleted xảy ra. (Kế thừa từ Control)

2

OnManipulationDelta

Được gọi trước khi sự kiện ManipulationDelta xảy ra. (Kế thừa từ Control)

3

OnManipulationInertiaStarting

Được gọi trước khi sự kiện ManipulationInertiaStarting xảy ra. (Kế thừa từ Control)

4

OnManipulationStarted

Được gọi trước khi sự kiện ManipulationStarted xảy ra. (Kế thừa từ Control)

5

OnManipulationStarting

Được gọi trước khi sự kiện ManipulationStarting xảy ra. (Kế thừa từ Control)

6

OnMaximumChanged

Được gọi khi thuộc tính Tối đa thay đổi. (Được kế thừa từ RangeBase)

7

OnMinimumChanged

Được gọi khi thuộc tính Tối thiểu thay đổi. (Được kế thừa từ RangeBase)

số 8

OnValueChanged

Kích hoạt sự kiện được định tuyến ValueChanged. (Được kế thừa từ RangeBase)

9

SetBinding

Đính kèm một liên kết vào FrameworkElement, sử dụng đối tượng liên kết được cung cấp. (Kế thừa từ FrameworkElement)

10

SetValue

Đặt giá trị cục bộ của thuộc tính phụ thuộc trên DependencyObject. (Được kế thừa từ DependencyObject)

Thí dụ

Chúng ta hãy xem một ví dụ đơn giản trong đó một thanh trượt và một hình elip được thêm vào và thanh trượt điều khiển chiều rộng của hình elip.

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

Dưới đây là value changed event triển khai là 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; 
            } 
      } 
   } 
}

Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ thấy kết quả sau. Như bạn có thể thấy, khi bạn di chuyển thanh trượt từ trái sang phải, chiều rộng hình elip sẽ tăng lên.