159 lines
8.1 KiB
XML
159 lines
8.1 KiB
XML
<Window x:Class="ShortcutsHelper.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:local="clr-namespace:ShortcutsHelper"
|
|
xmlns:vm="clr-namespace:ShortcutsHelper.ViewModels"
|
|
mc:Ignorable="d"
|
|
Title="Shortcuts Helper" Height="400" Width="600" Topmost="True"
|
|
ResizeMode="CanResize" WindowStyle="ToolWindow">
|
|
<Window.Resources>
|
|
<!-- Converter para el ícono de Pin -->
|
|
<local:BoolToPinConverter x:Key="BoolToPinConverter"/>
|
|
<!-- Converter para visibilidad basada en boolean -->
|
|
<local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter"/>
|
|
</Window.Resources>
|
|
<Window.DataContext>
|
|
<vm:MainViewModel/>
|
|
</Window.DataContext>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Header con aplicación actual y botón de Pin -->
|
|
<Border Grid.Row="0" Background="DarkBlue" Padding="8">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- Botón de Pin -->
|
|
<Button Grid.Column="0"
|
|
x:Name="PinButton"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Foreground="White"
|
|
FontSize="16"
|
|
Margin="0,0,10,0"
|
|
ToolTip="Pin/Unpin aplicación actual"
|
|
Click="PinButton_Click">
|
|
<Button.Content>
|
|
<TextBlock Text="{Binding IsPinnedMode, Converter={StaticResource BoolToPinConverter}}" />
|
|
</Button.Content>
|
|
<Button.Style>
|
|
<Style TargetType="Button">
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
<Style.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter Property="Background" Value="#4000BFFF"/>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Button.Style>
|
|
</Button>
|
|
|
|
<!-- Información de la aplicación -->
|
|
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Center">
|
|
<TextBlock Text="App:" FontWeight="Bold" Foreground="White" Margin="0,0,5,0"/>
|
|
<TextBlock Text="{Binding CurrentApplication}" FontWeight="Bold" Foreground="Yellow"/>
|
|
<TextBlock Text=" - " FontWeight="Bold" Foreground="White" Margin="5,0"/>
|
|
<TextBlock Text="{Binding Shortcuts.Count, StringFormat=\{0\} shortcuts}" Foreground="LightGray"/>
|
|
<TextBlock Text=" (Pinned)" FontWeight="Bold" Foreground="Orange" Margin="5,0,0,0"
|
|
Visibility="{Binding IsPinnedMode, Converter={StaticResource BoolToVisibilityConverter}}"/>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- DataGrid -->
|
|
<DataGrid x:Name="ShortcutsDataGrid" Grid.Row="1"
|
|
ItemsSource="{Binding Shortcuts}"
|
|
SelectedItem="{Binding SelectedShortcut}"
|
|
AutoGenerateColumns="False"
|
|
CanUserAddRows="False"
|
|
CanUserDeleteRows="False"
|
|
SelectionMode="Single"
|
|
GridLinesVisibility="Horizontal"
|
|
HeadersVisibility="Column"
|
|
AlternatingRowBackground="LightGray"
|
|
RowHeaderWidth="0"
|
|
CanUserSortColumns="False"
|
|
IsReadOnly="False"
|
|
MouseDoubleClick="ShortcutsDataGrid_MouseDoubleClick"
|
|
CellEditEnding="ShortcutsDataGrid_CellEditEnding"
|
|
RowEditEnding="ShortcutsDataGrid_RowEditEnding">
|
|
<DataGrid.ContextMenu>
|
|
<ContextMenu>
|
|
<MenuItem Header="🗑️ Eliminar" Click="MenuItem_Delete_Click" />
|
|
<Separator />
|
|
<MenuItem Header="⌨️ Capturar Teclas" Click="MenuItem_CaptureKeys_Click" />
|
|
</ContextMenu>
|
|
</DataGrid.ContextMenu>
|
|
<DataGrid.Columns>
|
|
<DataGridCheckBoxColumn x:Name="FavoriteColumn"
|
|
Header="⭐"
|
|
Binding="{Binding IsFavorite, UpdateSourceTrigger=PropertyChanged}"
|
|
Width="40"
|
|
MinWidth="40"/>
|
|
<DataGridTextColumn x:Name="ShortcutColumn"
|
|
Header="Atajo"
|
|
Binding="{Binding Shortcut, UpdateSourceTrigger=PropertyChanged}"
|
|
Width="140"
|
|
MinWidth="100"
|
|
FontFamily="Consolas"
|
|
FontWeight="Bold"/>
|
|
<DataGridTemplateColumn x:Name="DescriptionColumn"
|
|
Header="Descripción"
|
|
Width="*"
|
|
MinWidth="80">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<TextBlock Text="{Binding Description}"
|
|
TextWrapping="Wrap"
|
|
MaxWidth="400"
|
|
Margin="5,2"
|
|
VerticalAlignment="Top"/>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
<DataGridTemplateColumn.CellEditingTemplate>
|
|
<DataTemplate>
|
|
<TextBox Text="{Binding Description, UpdateSourceTrigger=PropertyChanged}"
|
|
TextWrapping="Wrap"
|
|
AcceptsReturn="True"
|
|
AcceptsTab="True"
|
|
MinHeight="40"
|
|
MaxHeight="120"
|
|
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
|
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
|
BorderThickness="1"
|
|
BorderBrush="LightBlue"
|
|
Margin="1"
|
|
Padding="2"
|
|
VerticalAlignment="Stretch"
|
|
VerticalContentAlignment="Top"
|
|
HorizontalAlignment="Stretch"/>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellEditingTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
<DataGrid.RowStyle>
|
|
<Style TargetType="DataGridRow">
|
|
<Setter Property="MinHeight" Value="40"/>
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsFavorite}" Value="True">
|
|
<Setter Property="Background" Value="LightYellow"/>
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding IsModified}" Value="True">
|
|
<Setter Property="FontStyle" Value="Italic"/>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</DataGrid.RowStyle>
|
|
</DataGrid>
|
|
</Grid>
|
|
</Window>
|