diff --git a/docs/Masa.Blazor.Docs/Examples/labs/watermark/Chinese.razor b/docs/Masa.Blazor.Docs/Examples/labs/watermark/Chinese.razor new file mode 100644 index 0000000000..fcf7acf114 --- /dev/null +++ b/docs/Masa.Blazor.Docs/Examples/labs/watermark/Chinese.razor @@ -0,0 +1,26 @@ +@using SkiaSharp + + +
+
+ +@code { + + private SKTypeface? _typeface = SKTypeface.FromFamilyName("Microsoft YaHei"); + + // protected override void OnAfterRender(bool firstRender) + // { + // if (firstRender) + // { + // _typeface = SKTypeface.FromFile(GetFontPath()); + // StateHasChanged(); + // } + // } + + // private static string GetFontPath() + // { + // // Server side + // var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + // return Path.Combine(dir, "wwwroot", "ABC.ttf"); + // } +} \ No newline at end of file diff --git a/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/en-US.md b/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/en-US.md index 4726db2e14..cbd9a29035 100644 --- a/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/en-US.md +++ b/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/en-US.md @@ -23,6 +23,12 @@ Use `Grayscale` to make the image gray. +#### Chinese {released-on=v1.7.3} + +To display Chinese, you need to provide a font that supports Chinese. + + + ### Misc #### Fallback to text diff --git a/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/zh-CN.md b/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/zh-CN.md index 614f5118a0..6ba8abc4e9 100644 --- a/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/zh-CN.md +++ b/docs/Masa.Blazor.Docs/wwwroot/pages/labs/watermark/zh-CN.md @@ -5,25 +5,31 @@ desc: "给某个区域加上水印。" > This component is in [Masa.Blazor.SomethingSkia](https://www.nuget.org/packages/Masa.Blazor.SomethingSkia) package. -## 使用 +## 使用 {#usage} -## 示例 +## 示例 {#examples} -### 属性 +### 属性 {#props} -#### 图片 +#### 图片 {#image} -#### 颜色 +#### 颜色 {#color} -### 其他 +#### 中文 {#chinese released-on=v1.7.3} -#### 回退到文字 +设置中文需要提供支持中文的字体。 + + + +### 其他 {#misc} + +#### 回退到文字 {#fallback-to-text} 当图片加载失败时,回退到文字水印。 diff --git a/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.ParameterChangeObserver.cs b/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.ParameterChangeObserver.cs index 98b83885e3..b1d7dec18e 100644 --- a/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.ParameterChangeObserver.cs +++ b/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.ParameterChangeObserver.cs @@ -20,6 +20,7 @@ public partial class MWatermark private int __prevGapX; private int __prevGapY; private bool __prevIsGrayscale; + private SKTypeface? __prevTypeface; private bool AnyParameterChanged(params string[] parameterNames) { @@ -84,6 +85,12 @@ private bool AnyParameterChanged(params string[] parameterNames) __prevIsGrayscale = Grayscale; anyChanged = parameterNames.Contains(nameof(Grayscale)); } + + if (__prevTypeface != Typeface) + { + __prevTypeface = Typeface; + anyChanged = parameterNames.Contains(nameof(Typeface)); + } return anyChanged; } diff --git a/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.razor.cs b/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.razor.cs index ba663441fd..8ac2a77853 100644 --- a/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.razor.cs +++ b/src/Masa.Blazor.SomethingSkia/Watermark/MWatermark.razor.cs @@ -31,6 +31,10 @@ [Parameter] [MasaApiParameter("new SKColor(0, 0, 0, 38)")] [Parameter] public int GapY { get; set; } + [MasaApiParameter(ReleasedOn = "v1.7.3")] + [Parameter] + public SKTypeface? Typeface { get; set; } + /// /// Determines whether the watermark is grayscale. Only works when is not null. /// @@ -58,7 +62,8 @@ protected override async Task OnParametersSetAsync() nameof(Top), nameof(GapX), nameof(GapY), - nameof(Grayscale))) + nameof(Grayscale), + nameof(Typeface))) { await UpdateWatermark(); } @@ -127,7 +132,8 @@ private void DrawTextWatermark() TextSize = TextSize, Color = Color, IsAntialias = true, - Style = SKPaintStyle.Fill + Style = SKPaintStyle.Fill, + Typeface = Typeface }; SKRect textBounds = new();