aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineView.xaml.cs
blob: 67fa0d5bf57e115c07410fc2013f4c1b6eec7982 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Tango.MachineStudio.MachineDesigner.Views
{
    /// <summary>
    /// Interaction logic for MachineView.xaml
    /// </summary>
    public partial class MachineView : UserControl
    {
        public MachineView()
        {
            InitializeComponent();
        }
    }
}
an class="w"> { static InsightWindow() { DefaultStyleKeyProperty.OverrideMetadata(typeof(InsightWindow), new FrameworkPropertyMetadata(typeof(InsightWindow))); AllowsTransparencyProperty.OverrideMetadata(typeof(InsightWindow), new FrameworkPropertyMetadata(Boxes.True)); } /// <summary> /// Creates a new InsightWindow. /// </summary> public InsightWindow(TextArea textArea) : base(textArea) { this.CloseAutomatically = true; AttachEvents(); } /// <inheritdoc/> protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); Rect caret = this.TextArea.Caret.CalculateCaretRectangle(); Point pointOnScreen = this.TextArea.TextView.PointToScreen(caret.Location - this.TextArea.TextView.ScrollOffset); Rect workingArea = System.Windows.Forms.Screen.FromPoint(pointOnScreen.ToSystemDrawing()).WorkingArea.ToWpf().TransformFromDevice(this); MaxHeight = workingArea.Height; MaxWidth = Math.Min(workingArea.Width, Math.Max(1000, workingArea.Width * 0.6)); } /// <summary> /// Gets/Sets whether the insight window should close automatically. /// The default value is true. /// </summary> public bool CloseAutomatically { get; set; } /// <inheritdoc/> protected override bool CloseOnFocusLost { get { return this.CloseAutomatically; } } void AttachEvents() { this.TextArea.Caret.PositionChanged += CaretPositionChanged; } /// <inheritdoc/> protected override void DetachEvents() { this.TextArea.Caret.PositionChanged -= CaretPositionChanged; base.DetachEvents(); } void CaretPositionChanged(object sender, EventArgs e) { if (this.CloseAutomatically) { int offset = this.TextArea.Caret.Offset; if (offset < this.StartOffset || offset > this.EndOffset) { Close(); } } } } /// <summary> /// TemplateSelector for InsightWindow to replace plain string content by a TextBlock with TextWrapping. /// </summary> internal sealed class InsightWindowTemplateSelector : DataTemplateSelector { public override DataTemplate SelectTemplate(object item, DependencyObject container) { if (item is string) return (DataTemplate)((FrameworkElement)container).FindResource("TextBlockTemplate"); return null; } } }