示例#1
0
        public cave.ui.AlignWidget addWidget(Windows.UI.Xaml.UIElement widget, double alignX, double alignY, bool maximizeWidth = false)
        {
            var ee = new cave.ui.AlignWidget.MyChildEntry();

            ee.widget        = widget;
            ee.alignX        = alignX;
            ee.alignY        = alignY;
            ee.maximizeWidth = maximizeWidth;
            children.Add(ee);
            cave.ui.Widget.addChild((Windows.UI.Xaml.UIElement) this, widget);
            if (hasSize())
            {
                handleEntry(ee);
            }
            return(this);
        }
示例#2
0
        private void handleEntry(cave.ui.AlignWidget.MyChildEntry entry)
        {
            var w  = cave.ui.Widget.getWidth((Windows.UI.Xaml.UIElement) this) - widgetMarginLeft - widgetMarginRight;
            var h  = cave.ui.Widget.getHeight((Windows.UI.Xaml.UIElement) this) - widgetMarginTop - widgetMarginBottom;
            var cw = cave.ui.Widget.getWidth(entry.widget);
            var ch = cave.ui.Widget.getHeight(entry.widget);

            if (cw > w || ch > h)
            {
                if (cw > w)
                {
                    cw = w;
                }
                if (ch > h)
                {
                    ch = h;
                }
            }
            var dx = (int)(widgetMarginLeft + (w - cw) * entry.alignX);
            var dy = (int)(widgetMarginTop + (h - ch) * entry.alignY);

            cave.ui.Widget.move(entry.widget, dx, dy);
        }