Silverlight/XAML – Learning by Coding
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 Object, ByVal 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(zoom, dzPt.X, dzPt.Y)
53: End Sub
54:
55: Private Sub Up(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs)
56: isDrag = False
57: End Sub
58:
59: Private Sub Move(ByVal sender As Object, ByVal 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.X = cuOr.X + stPt.X - cuPt.X
65: neOr.Y = cuOr.Y + stPt.Y - 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]