根据所选文化更改 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");
}

演示:https://blazorrepl.telerik.com/wQaJQrPT36Da5Urf52