mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
0.7.7.2
笔迹粗细大小调节
This commit is contained in:
@@ -98,17 +98,34 @@
|
||||
PlacementTarget="{Binding #PenButton}"
|
||||
IsLightDismissEnabled="True"
|
||||
WindowManagerAddShadowHint="False">
|
||||
<Border Background="{DynamicResource SystemControlBackgroundChromeMediumBrush}"
|
||||
<Border Background="{DynamicResource AdaptiveSurfaceBaseBrush}"
|
||||
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="8"
|
||||
Padding="12">
|
||||
<ColorView x:Name="InkColorPicker"
|
||||
IsAlphaEnabled="False"
|
||||
IsColorSpectrumVisible="True"
|
||||
IsColorPaletteVisible="True"
|
||||
IsHexInputVisible="True"
|
||||
ColorChanged="OnColorPickerColorChanged" />
|
||||
<StackPanel Spacing="12">
|
||||
<ColorView x:Name="InkColorPicker"
|
||||
IsAlphaEnabled="False"
|
||||
IsColorSpectrumVisible="True"
|
||||
IsColorPaletteVisible="True"
|
||||
IsHexInputVisible="True"
|
||||
ColorChanged="OnColorPickerColorChanged" />
|
||||
<Grid ColumnDefinitions="Auto,*"
|
||||
ColumnSpacing="8">
|
||||
<TextBlock Grid.Column="0"
|
||||
Text="粗细"
|
||||
VerticalAlignment="Center"
|
||||
FontSize="12" />
|
||||
<Slider x:Name="InkThicknessSlider"
|
||||
Grid.Column="1"
|
||||
Minimum="1"
|
||||
Maximum="8"
|
||||
Value="2.5"
|
||||
SmallChange="0.5"
|
||||
LargeChange="1"
|
||||
ValueChanged="OnInkThicknessSliderValueChanged" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Popup>
|
||||
</Grid>
|
||||
|
||||
@@ -40,6 +40,7 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
||||
private WhiteboardToolMode _toolMode = WhiteboardToolMode.Pen;
|
||||
private bool? _isNightModeApplied;
|
||||
private SKColor _selectedInkColor = SKColors.Black;
|
||||
private float _selectedInkThickness = 2.5f;
|
||||
private string _componentId = BuiltInComponentIds.DesktopWhiteboard;
|
||||
private string _placementId = string.Empty;
|
||||
private int _noteRetentionDays = WhiteboardNoteRetentionPolicy.DefaultDays;
|
||||
@@ -81,6 +82,11 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
||||
_selectedInkColor.Green,
|
||||
_selectedInkColor.Blue);
|
||||
}
|
||||
|
||||
if (InkThicknessSlider is not null)
|
||||
{
|
||||
InkThicknessSlider.Value = _selectedInkThickness;
|
||||
}
|
||||
}
|
||||
|
||||
public int NoteRetentionDays => _noteRetentionDays;
|
||||
@@ -111,7 +117,7 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
||||
InkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||
var settings = InkCanvas.AvaloniaSkiaInkCanvas.Settings;
|
||||
settings.IgnorePressure = true;
|
||||
settings.InkThickness = 2.5f;
|
||||
settings.InkThickness = _selectedInkThickness;
|
||||
settings.EraserSize = new Size(20, 20);
|
||||
settings.IsBitmapCacheEnabled = true;
|
||||
settings.MaxBitmapCacheSize = 2048;
|
||||
@@ -149,7 +155,6 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
||||
}
|
||||
|
||||
var settings = InkCanvas.AvaloniaSkiaInkCanvas.Settings;
|
||||
settings.InkThickness = (float)Math.Clamp(_currentCellSize * 0.06, 2.0, 6.0);
|
||||
var eraserSize = Math.Clamp(_currentCellSize * 0.42, 12, 44);
|
||||
settings.EraserSize = new Size(eraserSize, eraserSize);
|
||||
}
|
||||
@@ -351,6 +356,15 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
||||
RefreshToolButtonVisuals();
|
||||
}
|
||||
|
||||
private void SetInkThickness(float thickness)
|
||||
{
|
||||
_selectedInkThickness = Math.Clamp(thickness, 1.0f, 8.0f);
|
||||
if (_toolMode == WhiteboardToolMode.Pen)
|
||||
{
|
||||
InkCanvas.AvaloniaSkiaInkCanvas.Settings.InkThickness = _selectedInkThickness;
|
||||
}
|
||||
}
|
||||
|
||||
private void RefreshToolButtonVisuals()
|
||||
{
|
||||
var isNightMode = _isNightModeApplied ?? ResolveIsNightMode();
|
||||
@@ -418,6 +432,11 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
||||
SetInkColor(new SKColor(color.R, color.G, color.B, color.A));
|
||||
}
|
||||
|
||||
private void OnInkThicknessSliderValueChanged(object? sender, RangeBaseValueChangedEventArgs e)
|
||||
{
|
||||
SetInkThickness((float)e.NewValue);
|
||||
}
|
||||
|
||||
private void OnEraserButtonClick(object? sender, RoutedEventArgs e)
|
||||
{
|
||||
SetToolMode(WhiteboardToolMode.Eraser);
|
||||
|
||||
Reference in New Issue
Block a user