Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions LabelAva.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -26,18 +26,17 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Avalonia" Version="11.3.12" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.12" />
<PackageReference Include="Avalonia.Desktop" Version="11.3.12" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.12" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.3.12" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Include="Avalonia.Diagnostics" Version="11.3.12">
<PackageReference Include="Avalonia" Version="12.0.5" />
<PackageReference Include="Avalonia.Controls.DataGrid" Version="12.0.1" />
<PackageReference Include="Avalonia.Desktop" Version="12.0.5" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="12.0.5" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="12.0.5" />
<PackageReference Include="AvaloniaUI.DiagnosticsSupport" Version="2.2.3">
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
</PackageReference>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
<PackageReference Include="FluentIcons.Avalonia" Version="2.0.321" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
<PackageReference Include="FluentIcons.Avalonia" Version="2.1.331" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
</ItemGroup>

Expand Down
24 changes: 0 additions & 24 deletions LabelAva.sln

This file was deleted.

3 changes: 3 additions & 0 deletions LabelAva.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<Solution>
<Project Path="LabelAva.csproj" />
</Solution>
4 changes: 2 additions & 2 deletions MainWindow.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
</Menu>

<!-- 状态栏 -->
<Border DockPanel.Dock="Bottom" Classes="statusbar" Padding="4" DataContext="{Binding StatusBar}" x:DataType="vm:StatusBarViewModel">
<Border DockPanel.Dock="Bottom" Classes="statusbar" Padding="4" DataContext="{Binding StatusBar}">
<Grid x:Name="StatusBarGrid" ColumnDefinitions="2*,Auto,*">
<Border x:Name="_StatusBar"
Classes="status-bar"
Expand Down Expand Up @@ -249,7 +249,7 @@
IsEnabled="{Binding IsTextEditable}"
FontFamily="{Binding Edit.ActiveDligFontFamily}"
FontFeatures="{Binding Edit.ActiveDligFontFeatures}"
Watermark="选中文本节点以编辑"
PlaceholderText="选中文本节点以编辑"
Text="{Binding Navigation.SelectedTranslationItem.Text,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
Expand Down
14 changes: 6 additions & 8 deletions MainWindow.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
using System.Linq;
using LabelAva.ViewModels;
using System.Diagnostics;
using Avalonia.Input.Platform;


namespace LabelAva;
Expand Down Expand Up @@ -879,7 +880,7 @@ private void FocusFirstTreeViewItem()
else
{
// 如果容器未准备好,退回到清除焦点
TopLevel.GetTopLevel(this)?.FocusManager?.ClearFocus();
TopLevel.GetTopLevel(this)?.FocusManager?.Focus(null);
}
}, DispatcherPriority.Background);
}
Expand Down Expand Up @@ -1302,7 +1303,7 @@ private void OnTranslationTextBoxKeyDown(object? sender, KeyEventArgs e)
_isIntentionalBlur = true;

Dispatcher.UIThread.Post(() =>
TopLevel.GetTopLevel(this)?.FocusManager?.ClearFocus(),
TopLevel.GetTopLevel(this)?.FocusManager?.Focus(null),
DispatcherPriority.Loaded);

Dispatcher.UIThread.Post(() => _isIntentionalBlur = false,
Expand All @@ -1325,19 +1326,16 @@ private void OnTranslationTextBoxTextChanged(object? sender, TextChangedEventArg
/// 若处于"主动离焦"状态(_isIntentionalBlur),立即清除焦点并复位标志。
/// 正常情况下(用户点击文本框、AutoFocusTextBox 触发)不受影响。
/// </summary>
private void OnTranslationTextBoxGotFocus(object? sender, GotFocusEventArgs e)
private void OnTranslationTextBoxGotFocus(object? sender, FocusChangedEventArgs e)
{
if (!_isIntentionalBlur) return;

_isIntentionalBlur = false;
Dispatcher.UIThread.Post(
() => TopLevel.GetTopLevel(this)?.FocusManager?.ClearFocus(),
() => TopLevel.GetTopLevel(this)?.FocusManager?.Focus(null),
DispatcherPriority.Input);
}

/// <summary>


/// <summary>
/// 全局快捷键拦截(隧道路由,在子控件处理前触发)
/// 用于接管并统一处理 TextBox 等子控件的撤销/重做快捷键冲突
Expand Down Expand Up @@ -1481,7 +1479,7 @@ private void SelectLabelByIndex(int labelIndex)
// UI 层补充操作
if (Navigation.SelectedItem != null)
{
TopLevel.GetTopLevel(this)?.FocusManager?.ClearFocus();
TopLevel.GetTopLevel(this)?.FocusManager?.Focus(null);
StatusBar.UpdateStatus($"已选中标注 #{labelIndex}", StatusBarViewModel.StatusType.Info);
}
}
Expand Down
3 changes: 3 additions & 0 deletions Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ public static void Main(string[] args) => BuildAvaloniaApp()
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
#if DEBUG
.WithDeveloperTools()
#endif
.WithInterFont()
.LogToTrace();
}
2 changes: 1 addition & 1 deletion Views/ImageAssociationWindow.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
<Grid ColumnDefinitions="1*,1*,3*,Auto" VerticalAlignment="Center">
<TextBlock Grid.Column="0" Text="{Binding ImageName}" VerticalAlignment="Center" FontSize="13" FontFamily="Sarasa Mono SC" Margin="8,0,0,0"/>
<TextBlock Grid.Column="1" Text="{Binding StatusText}" Foreground="{Binding StatusForeground}" VerticalAlignment="Center" FontSize="13" Width="80"/>
<TextBox Grid.Column="2" Text="{Binding NewPath, Mode=TwoWay}" FontSize="13" VerticalContentAlignment="Center" Watermark="(项目路径)"/>
<TextBox Grid.Column="2" Text="{Binding NewPath, Mode=TwoWay}" FontSize="13" VerticalContentAlignment="Center" PlaceholderText="(项目路径)"/>
<Button Grid.Column="3" Content="浏览" Click="OnSelectFile" FontSize="13" VerticalContentAlignment="Center" Margin="8,0,0,0"/>
</Grid>
</Border>
Expand Down
2 changes: 1 addition & 1 deletion Views/ImageSelectionWindow.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<!-- 文件名输入区域 -->
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal" Spacing="8" Margin="0,0,0,12">
<TextBlock Text="文件名:" VerticalAlignment="Center" FontSize="14"/>
<TextBox x:Name="FileNameTextBox" Width="250" FontSize="14" Watermark="输入文件名" TextChanged="OnFileNameTextChanged"/>
<TextBox x:Name="FileNameTextBox" Width="250" FontSize="14" PlaceholderText="输入文件名" TextChanged="OnFileNameTextChanged"/>
<TextBlock Text=".txt" VerticalAlignment="Center" FontSize="14" Foreground="{DynamicResource SystemControlForegroundChromeHighBrush}"/>
</StackPanel>

Expand Down
18 changes: 9 additions & 9 deletions Views/PreferencesWindow.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@
<TextBlock Grid.Row="0" Grid.Column="0" Text="自动聚焦" VerticalAlignment="Center"/>
<CheckBox x:Name="AutoFocusCheckBox" Grid.Row="0" Grid.Column="2"
IsChecked="True" VerticalAlignment="Center"
Checked="OnAutoFocusChanged" Unchecked="OnAutoFocusChanged">
IsCheckedChanged="OnAutoFocusChanged">
<TextBlock Text="选中标签后自动聚焦到文本框" FontSize="12" Foreground="{DynamicResource SystemControlForegroundBaseMediumBrush}"/>
</CheckBox>
</Grid>
Expand Down Expand Up @@ -384,7 +384,7 @@
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="框内颜色" VerticalAlignment="Center"/>
<TextBox x:Name="Group0ColorTextBox" Grid.Row="0" Grid.Column="2"
Watermark="#E74856" TextChanged="OnGroup0ColorChanged"
PlaceholderText="#E74856" TextChanged="OnGroup0ColorChanged"
VerticalAlignment="Center"/>
<Border x:Name="Group0ColorPreview" Grid.Row="0" Grid.Column="4"
CornerRadius="4" Width="36" Height="24"
Expand All @@ -404,7 +404,7 @@
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="框外颜色" VerticalAlignment="Center"/>
<TextBox x:Name="Group1ColorTextBox" Grid.Row="0" Grid.Column="2"
Watermark="#1E90FF" TextChanged="OnGroup1ColorChanged"
PlaceholderText="#1E90FF" TextChanged="OnGroup1ColorChanged"
VerticalAlignment="Center"/>
<Border x:Name="Group1ColorPreview" Grid.Row="0" Grid.Column="4"
CornerRadius="4" Width="36" Height="24"
Expand All @@ -424,7 +424,7 @@
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="选中高亮" VerticalAlignment="Center"/>
<TextBox x:Name="SelectedColorTextBox" Grid.Row="0" Grid.Column="2"
Watermark="#33BA90" TextChanged="OnSelectedColorChanged"
PlaceholderText="#33BA90" TextChanged="OnSelectedColorChanged"
VerticalAlignment="Center"/>
<Border x:Name="SelectedColorPreview" Grid.Row="0" Grid.Column="4"
CornerRadius="4" Width="36" Height="24"
Expand Down Expand Up @@ -456,7 +456,7 @@
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:QuickInputSlot">
<Grid ColumnDefinitions="*,Auto" Margin="0,2">
<TextBox Grid.Column="0" Text="{Binding Character}" Watermark="输入 Unicode 字符"/>
<TextBox Grid.Column="0" Text="{Binding Character}" PlaceholderText="输入 Unicode 字符"/>
<Button Grid.Column="1" Content="✕" Width="32" Height="32" Padding="0" FontSize="16"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
VerticalAlignment="Center"
Expand Down Expand Up @@ -485,12 +485,12 @@

<TextBlock Grid.Row="1" Grid.Column="0" Text="字体家族" VerticalAlignment="Center" Margin="0,8,0,0"/>
<TextBox x:Name="DligFontFamilyTextBox" Grid.Row="1" Grid.Column="2"
Watermark="如 Source Han Sans"
PlaceholderText="如 Source Han Sans"
Margin="0,8,0,0" VerticalAlignment="Center"/>

<TextBlock Grid.Row="2" Grid.Column="0" Text="OpenType" VerticalAlignment="Center" Margin="0,8,0,0"/>
<TextBox x:Name="DligFontFeaturesTextBox" Grid.Row="2" Grid.Column="2"
Watermark="dlig=1"
PlaceholderText="dlig=1"
Margin="0,8,0,0" VerticalAlignment="Center"/>
</Grid>
</Border>
Expand All @@ -507,8 +507,8 @@
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:QuickInputSlot">
<Grid ColumnDefinitions="*,*,Auto" Margin="0,2">
<TextBox Grid.Column="0" Text="{Binding Label}" Watermark="标签" Margin="0,0,4,0"/>
<TextBox Grid.Column="1" Text="{Binding Character}" Watermark="字符" Margin="4,0,0,0"/>
<TextBox Grid.Column="0" Text="{Binding Label}" PlaceholderText="标签" Margin="0,0,4,0"/>
<TextBox Grid.Column="1" Text="{Binding Character}" PlaceholderText="字符" Margin="4,0,0,0"/>
<Button Grid.Column="2" Content="✕" Width="32" Height="32" Padding="0" FontSize="16"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
VerticalAlignment="Center"
Expand Down