MsBox.Avalonia 全局修改弹框样式
Avalonia 里使用弹框控件,全局设置window的背景,引用的弹框也生效了,通过修改弹框的样式覆盖全局的样式。
修改弹框的样式
弹框的样式是MsBoxWindow窗体,里面的内容放的是MsBoxCustomView,看到的内容是MsBoxCustomView,通过修改MsBoxCustomView的背景覆盖Window全局设置的背景,里面显示的文字可以被复制。
Selector=“controls|MsBoxCustomView TextBox” 设置的文字样式生效了。
Selector=“controls|MsBoxCustomView Button” 设置的按钮样式也生效了。
弹框窗体的构建
public static IMsBox<string> GetMessageBoxCustom(MessageBoxCustomParams @params)
{
MsBoxCustomViewModel viewModel = new MsBoxCustomViewModel(@params);
MsBoxCustomView view = new MsBoxCustomView();
view.DataContext = (object) viewModel;
return (IMsBox<string>) new MsBox.Avalonia.MsBox<MsBoxCustomView, MsBoxCustomViewModel, string>(view, viewModel);
}
弹框窗体提示文字是
TextBox
全局设置样式
<Style Selector="controls|MsBoxCustomView TextBox">
<Setter Property="Foreground" Value="White"></Setter>
</Style>
<Style Selector="controls|MsBoxCustomView Button">
<Setter Property="Foreground" Value="White"></Setter>
</Style>