Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.5.10
|
Leadtools.Windows.Annotations Namespace : AnnRunDesigner Class |
public class AnnRunDesigner : AnnDesigner
'Declaration Public Class AnnRunDesigner Inherits AnnDesigner
'Usage Dim instance As AnnRunDesigner
public ref class AnnRunDesigner : public AnnDesigner
Uses an AnnRunDesigner to handle a button click
Imports Leadtools.Windows.Controls Imports Leadtools.Windows.Annotations Private Class MyWindow1 : Inherits Window Private container As AnnContainer Private viewer As ImageViewer Private currentDesigner As AnnDesigner Public Sub New(ByVal title As String) Me.Title = title Me.Width = 500 Me.Height = 200 ' load an image into the viewer viewer = New ImageViewer() ' fix this path to an existing image file on your system viewer.Source = New BitmapImage(New Uri(Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg"))) viewer.Width = Double.NaN viewer.Height = Double.NaN ' create and set up the container container = New AnnContainer() container.Width = viewer.Source.Width container.Height = viewer.Source.Height AddHandler container.MouseLeftButtonDown, AddressOf container_MouseLeftButtonDown AddHandler container.MouseMove, AddressOf container_MouseMove AddHandler container.MouseLeftButtonUp, AddressOf container_MouseLeftButtonUp ' Set the container as a content of viewer viewer.Content = container ' Create a dockPanel to contain the controls Dim panel As DockPanel = New DockPanel() panel.Children.Add(viewer) ' set the viewer as a content of the window Me.Content = panel ' add a few objects to the container Dim rectObj As AnnRectangleObject = New AnnRectangleObject() rectObj.Rect = New Rect(100, 100, 200, 200) rectObj.Stroke = Colors.Blue rectObj.StrokeThickness = 2.0 rectObj.Fill = Colors.Yellow container.Children.Add(rectObj) Dim buttonObj As AnnButtonObject = New AnnButtonObject() buttonObj.Rect = New Rect(100, 320, 200, 2400) buttonObj.Text = "Goto Leadtools website" buttonObj.Foreground = Colors.Black buttonObj.FontFamilyName = "Arial" buttonObj.FontSize = 8 buttonObj.Hyperlink = "http://www.leadtools.com" container.Children.Add(buttonObj) End Sub Private Sub container_MouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs) ' see if a designer is currently running, if so, let it handle this event If Not currentDesigner Is Nothing Then e = New MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp, MouseButton.Left) currentDesigner.OnMouseRightButtonDown(DirectCast(sender, AnnContainer), e) End If If (Not e.Handled) Then ' the mouse click was not handled by a designer ' check if the click was on top of an existing object that we can start running Dim pt As System.Windows.Point = e.GetPosition(Me.container) Dim obj As AnnObject = container.HitTest(pt) If Not obj Is Nothing Then ' yes, start the run designer for this object If TypeOf obj Is AnnButtonObject Then Dim buttonRunDesigner As AnnButtonRunDesigner = New AnnButtonRunDesigner(Me.container) StartRunning(buttonRunDesigner, obj, e) Else Dim runDesigner As AnnRunDesigner = New AnnRunDesigner(Me.container) StartRunning(runDesigner, obj, e) End If End If End If End Sub Private Sub container_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) ' see if a designer is currently running, if so, let it handle this event If Not currentDesigner Is Nothing Then e = New MouseEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp) currentDesigner.OnMouseMove(DirectCast(sender, AnnContainer), e) End If End Sub Private Sub container_MouseLeftButtonUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs) ' see if a designer is currently running, if so, let it handle this event If Not currentDesigner Is Nothing Then e = New MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp, MouseButton.Left) currentDesigner.OnMouseLeftButtonUp(DirectCast(sender, AnnContainer), e) End If End Sub Private Sub StartRunning(ByVal runDesigner As AnnRunDesigner, ByVal obj As AnnObject, ByVal e As MouseButtonEventArgs) ' set up the current designer AddHandler runDesigner.Run, AddressOf OnDesignerRun runDesigner.Object = obj runDesigner.Start() currentDesigner = runDesigner e = New MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp, MouseButton.Left) currentDesigner.OnMouseLeftButtonUp(runDesigner.Container, e) End Sub Private Sub OnDesignerRun(ByVal sender As Object, ByVal e As AnnRunDesignerEventArgs) ' show information on the current edit operation Console.WriteLine("Object: {0}, Status: {1}, ", e.Object.GetType().Name, e.OperationStatus) If e.OperationStatus = AnnDesignerOperationStatus.End Then ' check if the object does not have a hyperlink, if so, show a message box If e.Object.Hyperlink Is Nothing OrElse e.Object.Hyperlink = String.Empty Then MessageBox.Show(String.Format("You clicked an object of type {0} that does not have a hyperlink", e.Object.GetType().Name)) End If End If End Sub End Class Public Sub AnnRunDesigner_AnnRunDesigner(ByVal title As String) Dim window As MyWindow1 = New MyWindow1(title) window.ShowDialog() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools.Windows.Controls; using Leadtools.Windows.Annotations; using Leadtools.Demos; using Leadtools.Help; class MyWindow1 : Window { AnnContainer container; ImageViewer viewer; AnnDesigner currentDesigner; public MyWindow1(string title) { this.Title = title; this.Width = 500; this.Height = 200; // load an image into the viewer viewer = new ImageViewer(); // fix this path to an existing image file on your system viewer.Source = new BitmapImage(new Uri(Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg"))); viewer.Width = double.NaN; viewer.Height = double.NaN; // create and set up the container container = new AnnContainer(); container.Width = viewer.Source.Width; container.Height = viewer.Source.Height; container.MouseLeftButtonDown += new MouseButtonEventHandler(container_MouseLeftButtonDown); container.MouseMove += new MouseEventHandler(container_MouseMove); container.MouseLeftButtonUp += new MouseButtonEventHandler(container_MouseLeftButtonUp); // Set the container as a content of viewer viewer.Content = container; // Create a dockPanel to contain the controls DockPanel panel = new DockPanel(); panel.Children.Add(viewer); // set the viewer as a content of the window this.Content = panel; // add a few objects to the container AnnRectangleObject rectObj = new AnnRectangleObject(); rectObj.Rect = new Rect(100, 100, 200, 200); rectObj.Stroke = Colors.Blue; rectObj.Fill = Colors.Yellow; rectObj.StrokeThickness = 2.0; container.Children.Add(rectObj); AnnButtonObject buttonObj = new AnnButtonObject(); buttonObj.Rect = new Rect(100, 320, 200, 2400); buttonObj.Foreground = Colors.Black; buttonObj.FontFamilyName = "Arial"; buttonObj.Text = "Goto Leadtools website"; buttonObj.FontSize = 8; buttonObj.Hyperlink = @"http://www.leadtools.com"; container.Children.Add(buttonObj); } void container_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { // see if a designer is currently running, if so, let it handle this event if(currentDesigner != null) { e = new MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp, MouseButton.Left); currentDesigner.OnMouseRightButtonDown(sender as AnnContainer, e); } if(!e.Handled) { // the mouse click was not handled by a designer // check if the click was on top of an existing object that we can start running Point pt = e.GetPosition(this.container); AnnObject obj = container.HitTest(pt); if (obj != null) { // yes, start the run designer for this object if(obj is AnnButtonObject) { AnnButtonRunDesigner buttonRunDesigner = new AnnButtonRunDesigner(this.container); StartRunning(buttonRunDesigner, obj, e); } else { AnnRunDesigner runDesigner = new AnnRunDesigner(this.container); StartRunning(runDesigner, obj, e); } } } } void container_MouseMove(object sender, MouseEventArgs e) { // see if a designer is currently running, if so, let it handle this event if(currentDesigner != null) { e = new MouseEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp); currentDesigner.OnMouseMove(sender as AnnContainer,e); } } void container_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { // see if a designer is currently running, if so, let it handle this event if(currentDesigner != null) { e = new MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp, MouseButton.Left); currentDesigner.OnMouseLeftButtonUp(sender as AnnContainer, e); } } private void StartRunning(AnnRunDesigner runDesigner, AnnObject obj, MouseButtonEventArgs e) { // set up the current designer runDesigner.Run += new EventHandler<AnnRunDesignerEventArgs>(OnDesignerRun); runDesigner.Object = obj; runDesigner.Start(); currentDesigner = runDesigner; e = new MouseButtonEventArgs(InputManager.Current.PrimaryMouseDevice, e.Timestamp, MouseButton.Left); currentDesigner.OnMouseLeftButtonUp(runDesigner.Container, e); } private void OnDesignerRun(object sender, AnnRunDesignerEventArgs e) { // show information on the current edit operation Console.WriteLine("Object: {0}, Status: {1}, ", e.Object.GetType().Name, e.OperationStatus); if(e.OperationStatus == AnnDesignerOperationStatus.End) { // check if the object does not have a hyperlink, if so, show a message box if(e.Object.Hyperlink == null || e.Object.Hyperlink == string.Empty) MessageBox.Show(String.Format("You clicked an object of type {0} that does not have a hyperlink", e.Object.GetType().Name)); } } } public void AnnRunDesigner_AnnRunDesigner(string title) { MyWindow1 window = new MyWindow1(title); window.ShowDialog(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
using Leadtools.Windows.Controls; using Leadtools.Windows.Annotations; using Leadtools.Examples; class MyWindow1 : ChildWindow { AnnContainer container; ImageViewer viewer; AnnDesigner currentDesigner; public MyWindow1(string title) { this.Title = title; this.Width = 500; this.Height = 200; // load an image into the viewer // fix this path to an existing image file on your system viewer = new ImageViewer(); viewer.Source = new BitmapImage(new Uri(LeadtoolsExamples.Common.ImagesPath.Path + "ScarletMacaws.jpg")); viewer.Width = double.NaN; viewer.Height = double.NaN; // create and set up the container container = new AnnContainer(); BitmapSource bmp = (BitmapSource)viewer.Source; container.Width = bmp.PixelWidth; container.Height = bmp.PixelHeight; container.MouseLeftButtonDown += new MouseButtonEventHandler(container_MouseLeftButtonDown); container.MouseMove += new MouseEventHandler(container_MouseMove); container.MouseLeftButtonUp += new MouseButtonEventHandler(container_MouseLeftButtonUp); // Set the container as a content of viewer viewer.Content = container; // Create a Panel to contain the controls StackPanel panel = new StackPanel(); panel.Children.Add(viewer); // set the viewer as a content of the window this.Content = panel; // add a few objects to the container AnnRectangleObject rectObj = new AnnRectangleObject(); rectObj.Rect = new Rect(100, 100, 200, 200); rectObj.Stroke = Colors.Blue; rectObj.Fill = Colors.Yellow; rectObj.StrokeThickness = 2.0; container.Children.Add(rectObj); } void container_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { // see if a designer is currently running, if so, let it handle this event if(currentDesigner != null) { currentDesigner.OnMouseRightButtonDown(sender as AnnContainer, e); } if(!e.Handled) { // the mouse click was not handled by a designer // check if the click was on top of an existing object that we can start running Point pt = e.GetPosition(this.container); AnnObject obj = container.HitTest(pt); if (obj != null) { // yes, start the run designer for this object AnnRunDesigner runDesigner = new AnnRunDesigner(this.container); StartRunning(runDesigner, obj, e); } } } void container_MouseMove(object sender, MouseEventArgs e) { // see if a designer is currently running, if so, let it handle this event if(currentDesigner != null) { currentDesigner.OnMouseMove(sender as AnnContainer,e); } } void container_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { // see if a designer is currently running, if so, let it handle this event if(currentDesigner != null) { currentDesigner.OnMouseLeftButtonUp(sender as AnnContainer, e); } } private void StartRunning(AnnRunDesigner runDesigner, AnnObject obj, MouseButtonEventArgs e) { // set up the current designer runDesigner.Run += new EventHandler<AnnRunDesignerEventArgs>(OnDesignerRun); runDesigner.Object = obj; runDesigner.Start(); currentDesigner = runDesigner; currentDesigner.OnMouseLeftButtonUp(runDesigner.Container, e); } private void OnDesignerRun(object sender, AnnRunDesignerEventArgs e) { // show information on the current edit operation Console.WriteLine("Object: {0}, Status: {1}, ", e.Object.GetType().Name, e.OperationStatus); if(e.OperationStatus == AnnDesignerOperationStatus.End) { // check if the object does not have a hyperlink, if so, show a message box if(e.Object.Hyperlink == null || e.Object.Hyperlink == string.Empty) MessageBox.Show(String.Format("You clicked an object of type {0} that does not have a hyperlink", e.Object.GetType().Name)); } } } public void AnnRunDesigner_AnnRunDesigner(string title) { MyWindow1 window = new MyWindow1(title); window.Show(); }
Imports Leadtools.Windows.Controls Imports Leadtools.Windows.Annotations Private Class MyWindow1 : Inherits ChildWindow Private container As AnnContainer Private viewer As ImageViewer Private currentDesigner As AnnDesigner Public Sub New(ByVal title As String) Me.Title = title Me.Width = 500 Me.Height = 200 ' load an image into the viewer viewer = New ImageViewer() ' fix this path to an existing image file on your system viewer.Source = _ New BitmapImage(New Uri(LeadtoolsExamples.Common.ImagesPath.Path & "ScarletMacaws.jpg")) viewer.Width = Double.NaN viewer.Height = Double.NaN ' create and set up the container container = New AnnContainer() Dim bmp As BitmapSource = CType(viewer.Source, BitmapSource) container.Width = bmp.PixelWidth container.Height = bmp.PixelHeight AddHandler container.MouseLeftButtonDown, AddressOf container_MouseLeftButtonDown AddHandler container.MouseMove, AddressOf container_MouseMove AddHandler container.MouseLeftButtonUp, AddressOf container_MouseLeftButtonUp ' Set the container as a content of viewer viewer.Content = container ' Create a Panel to contain the controls Dim panel As StackPanel = New StackPanel() panel.Children.Add(viewer) ' set the viewer as a content of the window Me.Content = panel ' add a few objects to the container Dim rectObj As AnnRectangleObject = New AnnRectangleObject() rectObj.Rect = New Rect(100, 100, 200, 200) rectObj.Stroke = Colors.Blue rectObj.Fill = Colors.Yellow rectObj.StrokeThickness = 2.0 container.Children.Add(rectObj) End Sub Private Sub container_MouseLeftButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs) ' see if a designer is currently running, if so, let it handle this event If Not currentDesigner Is Nothing Then currentDesigner.OnMouseRightButtonDown(TryCast(sender, AnnContainer), e) End If If (Not e.Handled) Then ' the mouse click was not handled by a designer ' check if the click was on top of an existing object that we can start running Dim pt As Point = e.GetPosition(Me.container) Dim obj As AnnObject = container.HitTest(pt) If Not obj Is Nothing Then ' yes, start the run designer for this object Dim runDesigner As AnnRunDesigner = New AnnRunDesigner(Me.container) StartRunning(runDesigner, obj, e) End If End If End Sub Private Sub container_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) ' see if a designer is currently running, if so, let it handle this event If Not currentDesigner Is Nothing Then currentDesigner.OnMouseMove(TryCast(sender, AnnContainer),e) End If End Sub Private Sub container_MouseLeftButtonUp(ByVal sender As Object, ByVal e As MouseButtonEventArgs) ' see if a designer is currently running, if so, let it handle this event If Not currentDesigner Is Nothing Then currentDesigner.OnMouseLeftButtonUp(TryCast(sender, AnnContainer), e) End If End Sub Private Sub StartRunning(ByVal runDesigner As AnnRunDesigner, ByVal obj As AnnObject, ByVal e As MouseButtonEventArgs) ' set up the current designer AddHandler runDesigner.Run, AddressOf OnDesignerRun runDesigner.Object = obj runDesigner.Start() currentDesigner = runDesigner currentDesigner.OnMouseLeftButtonUp(runDesigner.Container, e) End Sub Private Sub OnDesignerRun(ByVal sender As Object, ByVal e As AnnRunDesignerEventArgs) ' show information on the current edit operation Console.WriteLine("Object: {0}, Status: {1}, ", e.Object.GetType().Name, e.OperationStatus) If e.OperationStatus = AnnDesignerOperationStatus.End Then ' check if the object does not have a hyperlink, if so, show a message box If e.Object.Hyperlink Is Nothing OrElse e.Object.Hyperlink = String.Empty Then MessageBox.Show(String.Format("You clicked an object of type {0} that does not have a hyperlink", e.Object.GetType().Name)) End If End If End Sub End Class Public Sub AnnRunDesigner_AnnRunDesigner(ByVal title As String) Dim window As MyWindow1 = New MyWindow1(title) window.Show() End Sub