ShortcutsHelper/MainWindow.xaml

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>