BzContextMenu

کانتکس منو

وقتی راست کلیک میکنی منو هایی که مد نظرت هست همونجا باز میشه برات

منوی ساده

یک لیست BzMenuItem بده و هر چیزی را داخل ChildContent قرار بده. آیتمی با متن خط تیره به جداکننده تبدیل میشه.

روی این کادر راست کلیک کن
razor
@using BzCore.Components.Overlay
@using BzCore.Components.Navigation

<BzContextMenu Items="_ctx">
    <div class="ctx-target">روی این کادر راست کلیک کن</div>
</BzContextMenu>

@code {
    private List<BzMenuItem> _ctx = new()
    {
        new() { Text = "ویرایش", Icon = "fa-solid fa-pen" },
        new() { Text = "کپی",   Icon = "fa-solid fa-copy" },
        new() { Text = "-" },                       // separator
        new() { Text = "حذف",   Icon = "fa-solid fa-trash" },
    };
}
با آیکون، جداکننده و رویداد

هر آیتم میتونه Icon و OnClick داشته باشد.

این یکی رویداد داره — امتحان کن
عضو توضیح
Itemsلیست آیتم های منو
ChildContentناحیه ای که راست کلیک را میگیره
BzMenuItem.Textمتن؛ مقدار خط تیره یعنی جداکننده
BzMenuItem.Iconکلاس آیکون FontAwesome
BzMenuItem.OnClickرویداد انتخاب آیتم
razor
@using BzCore.Components.Overlay
@using BzCore.Components.Navigation

<BzContextMenu Items="_ctx">
    <div class="ctx-target">این یکی رویداد داره — امتحان کن</div>
</BzContextMenu>

@if (_last is not null)
{
    <p>آخرین انتخاب: <b>@_last</b></p>
}

@code {
    private string? _last;
    private List<BzMenuItem> _ctx = new();

    protected override void OnInitialized()
    {
        _ctx = new()
        {
            new() { Text = "ویرایش", Icon = "fa-solid fa-pen",
                    OnClick = () => Pick("ویرایش") },
            new() { Text = "اشتراک گذاری", Icon = "fa-solid fa-share-nodes",
                    OnClick = () => Pick("اشتراک گذاری") },
            new() { Text = "-" },
            new() { Text = "حذف", Icon = "fa-solid fa-trash",
                    OnClick = () => Pick("حذف") },
        };
    }

    private void Pick(string name)
    {
        _last = name;
        StateHasChanged();   // Action is not an EventCallback, so render manually
    }
}