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();