根据所选文化更改 blazor wasm 中的布局方向(ltr 到 rtl,rtl 到 ltr)
Change Layout Direction (ltr to rtl, rtl to ltr) in blazor wasm based on selected culture
我在 .NET 6 上有一个支持本地化的 blazor wasm 应用程序 运行,但我无法找到一种方法来根据所选区域性更改布局方向。我试图检测所选区域性的方向并更改 html
标记的 dir
,但问题是主要布局代码位于不支持 razor 语法的 index.html
文件中。
有解决问题的想法吗?
一直在等待 Blazor Repl 起死回生...
这是从 C# 更改它的方法
@inject IJSRuntime JS
<h1>Change Direction</h1>
<button @onclick=SetRTL>
RTL
</button>
<button @onclick=SetLTR>
LTR
</button>
@code
{
void SetDIR(string direction)
{
if (JS is IJSInProcessRuntime sr)
sr.InvokeVoid("document.body.setAttribute","dir",direction);
else
JS.InvokeVoidAsync("document.body.setAttribute","dir",direction);
}
void SetRTL() => SetDIR("rtl");
void SetLTR() => SetDIR("ltr");
}
我在 .NET 6 上有一个支持本地化的 blazor wasm 应用程序 运行,但我无法找到一种方法来根据所选区域性更改布局方向。我试图检测所选区域性的方向并更改 html
标记的 dir
,但问题是主要布局代码位于不支持 razor 语法的 index.html
文件中。
有解决问题的想法吗?
一直在等待 Blazor Repl 起死回生...
这是从 C# 更改它的方法
@inject IJSRuntime JS
<h1>Change Direction</h1>
<button @onclick=SetRTL>
RTL
</button>
<button @onclick=SetLTR>
LTR
</button>
@code
{
void SetDIR(string direction)
{
if (JS is IJSInProcessRuntime sr)
sr.InvokeVoid("document.body.setAttribute","dir",direction);
else
JS.InvokeVoidAsync("document.body.setAttribute","dir",direction);
}
void SetRTL() => SetDIR("rtl");
void SetLTR() => SetDIR("ltr");
}