aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Technician/PropertiesTemplates/ThreadMotionTemplate.xaml
blob: 771f48fe74ce14d0ba18f82f4a06905140b71717 (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
29
30
31
32
33
<UserControl x:Class="Tango.MachineStudio.Technician.PropertiesTemplates.ThreadMotionTemplate"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:converters="clr-namespace:Tango.MachineStudio.Technician.Converters"
             xmlns:items="clr-namespace:Tango.MachineStudio.Technician.TechItems"
              xmlns:mahapps="http://metro.mahapps.com/winfx/xaml/controls"
             xmlns:colorPicker="clr-namespace:Tango;assembly=Tango.ColorPicker"
             xmlns:local="clr-namespace:Tango.MachineStudio.Technician.PropertiesTemplates"
             mc:Ignorable="d" 
             d:DesignHeight="500" d:DesignWidth="200" d:DataContext="{d:DesignInstance Type=items:ThreadMotionItem, IsDesignTimeCreatable=False}">

    <UserControl.Resources>
        <converters:MonitorsToSingleChannleMonitorsConverter x:Key="MonitorsToSingleChannleMonitorsConverter" />

        <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource {x:Type TabItem}}">
            <Setter Property="mahapps:ControlsHelper.HeaderFontSize" Value="14" />
            <Setter Property="Margin" Value="2" />
        </Style>
    </UserControl.Resources>

    <Grid>
        <StackPanel>
            <GroupBox Header="THREAD MOTION">
                <StackPanel>
                    <TextBlock FontSize="10" Margin="0 20 0 0"><Run>Speed</Run> <Run Text="{Binding Speed,StringFormat={}{0:N0} ms,FallbackValue=0}"></Run></TextBlock>
                    <Slider Margin="0 5 0 0" Minimum="1" Maximum="1000" Value="{Binding Speed,Mode=TwoWay}"></Slider>
                </StackPanel>
            </GroupBox>
        </StackPanel>
    </Grid>
</UserControl>
"p">; using System.Windows.Threading; using ICSharpCode.AvalonEdit.Document; using ICSharpCode.AvalonEdit.Editing; using ICSharpCode.AvalonEdit.Rendering; namespace ICSharpCode.AvalonEdit.Search { /// <summary> /// Search commands for AvalonEdit. /// </summary> public static class SearchCommands { /// <summary> /// Finds the next occurrence in the file. /// </summary> public static readonly RoutedCommand FindNext = new RoutedCommand( "FindNext", typeof(SearchPanel), new InputGestureCollection { new KeyGesture(Key.F3) } ); /// <summary> /// Finds the previous occurrence in the file. /// </summary> public static readonly RoutedCommand FindPrevious = new RoutedCommand( "FindPrevious", typeof(SearchPanel), new InputGestureCollection { new KeyGesture(Key.F3, ModifierKeys.Shift) } ); /// <summary> /// Closes the SearchPanel. /// </summary> public static readonly RoutedCommand CloseSearchPanel = new RoutedCommand( "CloseSearchPanel", typeof(SearchPanel), new InputGestureCollection { new KeyGesture(Key.Escape) } ); } /// <summary> /// TextAreaInputHandler that registers all search-related commands. /// </summary> public class SearchInputHandler : TextAreaInputHandler { /// <summary> /// Creates a new SearchInputHandler and registers the search-related commands. /// </summary> public SearchInputHandler(TextArea textArea) : base(textArea) { RegisterCommands(this.CommandBindings); panel = new SearchPanel(); panel.Attach(TextArea); } void RegisterCommands(ICollection<CommandBinding> commandBindings) { commandBindings.Add(new CommandBinding(ApplicationCommands.Find, ExecuteFind)); commandBindings.Add(new CommandBinding(SearchCommands.FindNext, ExecuteFindNext)); commandBindings.Add(new CommandBinding(SearchCommands.FindPrevious, ExecuteFindPrevious)); commandBindings.Add(new CommandBinding(SearchCommands.CloseSearchPanel, ExecuteCloseSearchPanel)); } SearchPanel panel; void ExecuteFind(object sender, ExecutedRoutedEventArgs e) { panel.Open(); if (!(TextArea.Selection.IsEmpty || TextArea.Selection.IsMultiline)) panel.SearchPattern = TextArea.Selection.GetText(); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Input, (Action)delegate { panel.Reactivate(); }); } void ExecuteFindNext(object sender, ExecutedRoutedEventArgs e) { panel.FindNext(); } void ExecuteFindPrevious(object sender, ExecutedRoutedEventArgs e) { panel.FindPrevious(); } void ExecuteCloseSearchPanel(object sender, ExecutedRoutedEventArgs e) { panel.Close(); } /// <summary> /// Fired when SearchOptions are modified inside the SearchPanel. /// </summary> public event EventHandler<SearchOptionsChangedEventArgs> SearchOptionsChanged { add { panel.SearchOptionsChanged += value; } remove { panel.SearchOptionsChanged -= value; } } } }