This commit is contained in:
2026-03-03 16:07:58 +08:00
parent a948c0d7fb
commit 1dd49c6d93
2 changed files with 41 additions and 16 deletions
+6 -1
View File
@@ -7699,6 +7699,7 @@
<Grid Name="FloatingbarUIForInkReplay"> <Grid Name="FloatingbarUIForInkReplay">
<Viewbox Name="ViewboxFloatingBar" Margin="100,5,0,0" Cursor="Arrow" <Viewbox Name="ViewboxFloatingBar" Margin="100,5,0,0" Cursor="Arrow"
HorizontalAlignment="Left" Height="58" VerticalAlignment="Top" Width="1200" HorizontalAlignment="Left" Height="58" VerticalAlignment="Top" Width="1200"
UseLayoutRounding="True" SnapsToDevicePixels="True"
RenderTransformOrigin="0.5,0.5"> RenderTransformOrigin="0.5,0.5">
<Viewbox.LayoutTransform> <Viewbox.LayoutTransform>
<ScaleTransform x:Name="ViewboxFloatingBarScaleTransform" ScaleX="1" ScaleY="1" /> <ScaleTransform x:Name="ViewboxFloatingBarScaleTransform" ScaleX="1" ScaleY="1" />
@@ -7709,7 +7710,11 @@
MouseDown="SymbolIconEmoji_MouseDown" MouseUp="SymbolIconEmoji_MouseUp"> MouseDown="SymbolIconEmoji_MouseDown" MouseUp="SymbolIconEmoji_MouseUp">
<ui:SimpleStackPanel Margin="0,2,0,2" Orientation="Horizontal" <ui:SimpleStackPanel Margin="0,2,0,2" Orientation="Horizontal"
HorizontalAlignment="Center"> HorizontalAlignment="Center">
<Image Margin="0" Name="FloatingbarHeadIconImg" Source="/Resources/Icons-png/icc.png" /> <Image Margin="0"
Name="FloatingbarHeadIconImg"
SnapsToDevicePixels="True"
RenderOptions.BitmapScalingMode="Fant"
Source="/Resources/Icons-png/icc.png" />
</ui:SimpleStackPanel> </ui:SimpleStackPanel>
</Border> </Border>
<Border Margin="2,0,0,0" Padding="2" Visibility="Visible" Height="36" <Border Margin="2,0,0,0" Padding="2" Visibility="Visible" Height="36"
+35 -15
View File
@@ -1477,74 +1477,73 @@ namespace Ink_Canvas
if (index == 0) if (index == 0)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc.png"));
FloatingbarHeadIconImg.Margin = new Thickness(0.5); FloatingbarHeadIconImg.Margin = new Thickness(0.5);
} }
else if (index == 1) else if (index == 1)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-noshadow.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-noshadow.png"));
FloatingbarHeadIconImg.Margin = new Thickness(0.5); FloatingbarHeadIconImg.Margin = new Thickness(0.5);
} }
else if (index == 2) else if (index == 2)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-dark.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-dark.png"));
FloatingbarHeadIconImg.Margin = new Thickness(0.5); FloatingbarHeadIconImg.Margin = new Thickness(0.5);
} }
else if (index == 3) else if (index == 3)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-sharpdark.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-sharpdark.png"));
FloatingbarHeadIconImg.Margin = new Thickness(0.5); FloatingbarHeadIconImg.Margin = new Thickness(0.5);
} }
else if (index == 4) else if (index == 4)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-transparent-light-small.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-transparent-light-small.png"));
FloatingbarHeadIconImg.Margin = new Thickness(0.5); FloatingbarHeadIconImg.Margin = new Thickness(0.5);
} }
else if (index == 5) else if (index == 5)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage( CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc-transparent-dark-small.png"));
new Uri("pack://application:,,,/Resources/Icons-png/icc-transparent-dark-small.png"));
FloatingbarHeadIconImg.Margin = new Thickness(1.2); FloatingbarHeadIconImg.Margin = new Thickness(1.2);
} }
else if (index == 6) else if (index == 6)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuandoujiyanhuaji.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuandoujiyanhuaji.png"));
FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5); FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5);
} }
else if (index == 7) else if (index == 7)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuanshounvhuaji.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuanshounvhuaji.png"));
FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5); FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5);
} }
else if (index == 8) else if (index == 8)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuanciya.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuanciya.png"));
FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5); FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5);
} }
else if (index == 9) else if (index == 9)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuanneikuhuaji.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuanneikuhuaji.png"));
FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5); FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5);
} }
else if (index == 10) else if (index == 10)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuandogeyuanliangwo.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/kuandogeyuanliangwo.png"));
FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5); FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1.5);
} }
else if (index == 11) else if (index == 11)
{ {
FloatingbarHeadIconImg.Source = FloatingbarHeadIconImg.Source =
new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/tiebahuaji.png")); CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/tiebahuaji.png"));
FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1); FloatingbarHeadIconImg.Margin = new Thickness(2, 2, 2, 1);
} }
else if (index >= 12 && index - 12 < Settings.Appearance.CustomFloatingBarImgs.Count) else if (index >= 12 && index - 12 < Settings.Appearance.CustomFloatingBarImgs.Count)
@@ -1553,18 +1552,39 @@ namespace Ink_Canvas
var customIcon = Settings.Appearance.CustomFloatingBarImgs[index - 12]; var customIcon = Settings.Appearance.CustomFloatingBarImgs[index - 12];
try try
{ {
FloatingbarHeadIconImg.Source = new BitmapImage(new Uri(customIcon.FilePath)); var dpi = VisualTreeHelper.GetDpi(this);
var targetPixels = (int)Math.Round(58 * dpi.DpiScaleX);
var decodePixels = targetPixels * 2;
if (decodePixels < 64) decodePixels = 64;
if (decodePixels > 512) decodePixels = 512;
FloatingbarHeadIconImg.Source = CreateBitmapImage(new Uri(customIcon.FilePath), decodePixels);
FloatingbarHeadIconImg.Margin = new Thickness(2); FloatingbarHeadIconImg.Margin = new Thickness(2);
} }
catch catch
{ {
// 如果加载失败,使用默认图标 // 如果加载失败,使用默认图标
FloatingbarHeadIconImg.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc.png")); FloatingbarHeadIconImg.Source = CreateBitmapImage(new Uri("pack://application:,,,/Resources/Icons-png/icc.png"));
FloatingbarHeadIconImg.Margin = new Thickness(0.5); FloatingbarHeadIconImg.Margin = new Thickness(0.5);
} }
} }
} }
private static BitmapImage CreateBitmapImage(Uri uri, int decodePixelWidth = 0)
{
var image = new BitmapImage();
image.BeginInit();
image.UriSource = uri;
image.CacheOption = BitmapCacheOption.OnLoad;
if (decodePixelWidth > 0)
{
image.DecodePixelWidth = decodePixelWidth;
}
image.EndInit();
image.Freeze();
return image;
}
/// <summary> /// <summary>
/// 更新组合框中的自定义图标选项 /// 更新组合框中的自定义图标选项
/// </summary> /// </summary>