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}"
|
PlacementTarget="{Binding #PenButton}"
|
||||||
IsLightDismissEnabled="True"
|
IsLightDismissEnabled="True"
|
||||||
WindowManagerAddShadowHint="False">
|
WindowManagerAddShadowHint="False">
|
||||||
<Border Background="{DynamicResource SystemControlBackgroundChromeMediumBrush}"
|
<Border Background="{DynamicResource AdaptiveSurfaceBaseBrush}"
|
||||||
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
|
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
|
||||||
BorderThickness="1"
|
BorderThickness="1"
|
||||||
CornerRadius="8"
|
CornerRadius="8"
|
||||||
Padding="12">
|
Padding="12">
|
||||||
<ColorView x:Name="InkColorPicker"
|
<StackPanel Spacing="12">
|
||||||
IsAlphaEnabled="False"
|
<ColorView x:Name="InkColorPicker"
|
||||||
IsColorSpectrumVisible="True"
|
IsAlphaEnabled="False"
|
||||||
IsColorPaletteVisible="True"
|
IsColorSpectrumVisible="True"
|
||||||
IsHexInputVisible="True"
|
IsColorPaletteVisible="True"
|
||||||
ColorChanged="OnColorPickerColorChanged" />
|
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>
|
</Border>
|
||||||
</Popup>
|
</Popup>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
|||||||
private WhiteboardToolMode _toolMode = WhiteboardToolMode.Pen;
|
private WhiteboardToolMode _toolMode = WhiteboardToolMode.Pen;
|
||||||
private bool? _isNightModeApplied;
|
private bool? _isNightModeApplied;
|
||||||
private SKColor _selectedInkColor = SKColors.Black;
|
private SKColor _selectedInkColor = SKColors.Black;
|
||||||
|
private float _selectedInkThickness = 2.5f;
|
||||||
private string _componentId = BuiltInComponentIds.DesktopWhiteboard;
|
private string _componentId = BuiltInComponentIds.DesktopWhiteboard;
|
||||||
private string _placementId = string.Empty;
|
private string _placementId = string.Empty;
|
||||||
private int _noteRetentionDays = WhiteboardNoteRetentionPolicy.DefaultDays;
|
private int _noteRetentionDays = WhiteboardNoteRetentionPolicy.DefaultDays;
|
||||||
@@ -81,6 +82,11 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
|||||||
_selectedInkColor.Green,
|
_selectedInkColor.Green,
|
||||||
_selectedInkColor.Blue);
|
_selectedInkColor.Blue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (InkThicknessSlider is not null)
|
||||||
|
{
|
||||||
|
InkThicknessSlider.Value = _selectedInkThickness;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int NoteRetentionDays => _noteRetentionDays;
|
public int NoteRetentionDays => _noteRetentionDays;
|
||||||
@@ -111,7 +117,7 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
|||||||
InkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
InkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
var settings = InkCanvas.AvaloniaSkiaInkCanvas.Settings;
|
var settings = InkCanvas.AvaloniaSkiaInkCanvas.Settings;
|
||||||
settings.IgnorePressure = true;
|
settings.IgnorePressure = true;
|
||||||
settings.InkThickness = 2.5f;
|
settings.InkThickness = _selectedInkThickness;
|
||||||
settings.EraserSize = new Size(20, 20);
|
settings.EraserSize = new Size(20, 20);
|
||||||
settings.IsBitmapCacheEnabled = true;
|
settings.IsBitmapCacheEnabled = true;
|
||||||
settings.MaxBitmapCacheSize = 2048;
|
settings.MaxBitmapCacheSize = 2048;
|
||||||
@@ -149,7 +155,6 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
|||||||
}
|
}
|
||||||
|
|
||||||
var settings = InkCanvas.AvaloniaSkiaInkCanvas.Settings;
|
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);
|
var eraserSize = Math.Clamp(_currentCellSize * 0.42, 12, 44);
|
||||||
settings.EraserSize = new Size(eraserSize, eraserSize);
|
settings.EraserSize = new Size(eraserSize, eraserSize);
|
||||||
}
|
}
|
||||||
@@ -351,6 +356,15 @@ public partial class WhiteboardWidget : UserControl, IDesktopComponentWidget, IC
|
|||||||
RefreshToolButtonVisuals();
|
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()
|
private void RefreshToolButtonVisuals()
|
||||||
{
|
{
|
||||||
var isNightMode = _isNightModeApplied ?? ResolveIsNightMode();
|
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));
|
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)
|
private void OnEraserButtonClick(object? sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
SetToolMode(WhiteboardToolMode.Eraser);
|
SetToolMode(WhiteboardToolMode.Eraser);
|
||||||
|
|||||||
Reference in New Issue
Block a user