static void OnStyleWidget(object obj) { if (obj is Widget w) { StyleWidget?.Invoke(w); } }
public static IWidget LayoutHover(string key, Color color, IWidget content) { var align = new AlignmentWidget(content) { VerticalAlignment = Alignment.Middle, HorizontalAlignment = Alignment.Middle, }; var style = new StyleWidget(align) { Style = new Style() }; var hover = new HoverWidget(key + ".hover", style); hover.Decoration = (h, w) => { style.Style.Background = h ? Color.Blue : color; return(w); }; var box = new PaddingWidget(new Padding(1), hover); return(box); }
public override IWidget Create() { var north = DemoTheme.LayoutHover("north", Color.Green, new LabelWidget("North")); var south = DemoTheme.LayoutHover("south", Color.Green, new LabelWidget("South")); var west = DemoTheme.LayoutHover("west", Color.Red, new LabelWidget("West")); var east = DemoTheme.LayoutHover("east", Color.Red, new LabelWidget("East")); var middlenorth = DemoTheme.LayoutHover("mnorth", Color.Orange, new LabelWidget("Middle North") { WrapContent = true }); var middlesouth = DemoTheme.LayoutHover("msouth", Color.Orange, new LabelWidget("Middle South") { WrapContent = true }); var middle = DemoTheme.LayoutHover("middle.stack", Color.SlateGray, new FlexLayoutWidget(Axis.Vertical, new IWidget[] { new FlexibleWidget(1, middlenorth), new FlexibleWidget(1, middlesouth), })); var center = DemoTheme.LayoutHover("center.stack", Color.Violet, new FlexLayoutWidget(Axis.Horizontal, new IWidget[] { new FlexibleWidget(1, east), new FlexibleWidget(1, middle), new FlexibleWidget(1, west), })); var stack = DemoTheme.LayoutHover("stack", Color.Yellow, new FlexLayoutWidget(Axis.Vertical, new IWidget[] { new FlexibleWidget(1, north), new FlexibleWidget(2, center), new FlexibleWidget(1, south), })); var fullstyle = new StyleWidget(stack) { Style = new Style() { Background = Color.Black } }; var click = new ButtonWidget("clickme", fullstyle); click.OnClick = (ev) => state.ToggleLayout(); return(click); }
void ApplyStyles(object widget, string style) { if (widget != null && !string.IsNullOrEmpty(style)) { var styles = style.Split(' '); for (int i = 0; i < styles.Length; i++) { var currentStyle = styles[i]; var styleHandlers = GetStyleList(currentStyle); if (styleHandlers != null) { for (int j = 0; j < styleHandlers.Count; j++) { var styleHandler = styleHandlers[j]; styleHandler(widget); } } } } StyleWidget?.Invoke(widget); }