Silverlight/XAML – Learning by Coding

[ sl2_multiscaleimage.xaml --> Grafik anzeigen ]

 1: <?xml version="1.0" encoding="UTF-8"?>
 2: <!-- coded by Thomas Meinike 08/08 -->
 3: <UserControl x:Class="sl2_multiscaleimage.Page"
 4:   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
 5:   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
 6:   Width="800" Height="600">
 7: 
 8:   <Canvas>
 9:     
10:     <TextBlock Canvas.Left="30" Canvas.Top="20" Foreground="#00C"
11:       FontSize="18" FontFamily="Arial" Text="MultiScaleImage für Deep Zoom [Mouse + Ctrl/Shift]"/>
12: 
13:     <MultiScaleImage Canvas.Left="30" Canvas.Top="50" x:Name="dz_image"
14:       Width="720" Height="540" MinWidth="720" Source="media/deepzoom/dzc_output.xml"
15:       MouseLeftButtonDown="Down" MouseLeftButtonUp="Up" MouseMove="Move"/>
16: 
17:   </Canvas>
18: 
19: 
20:   <!-- // zusätzlich verwendeter VB.NET-Code in Page.xaml.vb:
21: 
22:   Partial Public Class Page
23:     Inherits UserControl
24: 
25:     Public Sub New()
26:       InitializeComponent()
27:     End Sub
28: 
29:     Dim stPt As New Point
30:     Dim moPt As New Point
31:     Dim dzPt As New Point
32:     Dim cuPt As New Point
33:     Dim cuOr As New Point
34:     Dim neOr As New Point
35:     Dim isDrag As Boolean
36:     Dim zoom As Double
37: 
38:     Private Sub Down(ByVal sender As ObjectByVal e As System.Windows.Input.MouseButtonEventArgs)
39:       If Keyboard.Modifiers ModifierKeys.Control Then
40:         isDrag True
41:         stPt e.GetPosition(dz_image)
42:       End If
43: 
44:       If Keyboard.Modifiers ModifierKeys.Shift Then
45:         zoom 0.9
46:       Else
47:         zoom 1.1
48:       End If
49: 
50:       moPt e.GetPosition(dz_image)
51:       dzPt dz_image.ElementToLogicalPoint(moPt)
52:       dz_image.ZoomAboutLogicalPoint(zoomdzPt.XdzPt.Y)
53:     End Sub
54: 
55:     Private Sub Up(ByVal sender As ObjectByVal e As System.Windows.Input.MouseButtonEventArgs)
56:       isDrag False
57:     End Sub
58: 
59:     Private Sub Move(ByVal sender As ObjectByVal e As System.Windows.Input.MouseEventArgs)
60:       If isDrag True Then
61:         cuPt e.GetPosition(dz_image)
62:         cuOr dz_image.LogicalToElementPoint(dz_image.ViewportOrigin)
63: 
64:         neOr.cuOr.stPt.cuPt.X
65:         neOr.cuOr.stPt.cuPt.Y
66: 
67:         dz_image.ViewportOrigin dz_image.ElementToLogicalPoint(neOr)
68:       End If
69:     End Sub
70: 
71:   End Class
72: 
73:   -->
74: 
75: </UserControl>

[zum Anfang]