add layout transform

This commit is contained in:
bluepilledgreat 2024-10-22 19:37:50 +01:00
parent 6a07c9c8bd
commit eec3f3251a
2 changed files with 26 additions and 14 deletions

View File

@ -13,6 +13,7 @@
"VerticalAlignment": "VerticalAlignment",
"ZIndex": "int",
"RenderTransform": "Transform",
"LayoutTransform": "Transform",
"Opacity": "double",
"OpacityMask": "Brush",
"RenderTransformOrigin": "Point"

View File

@ -285,22 +285,28 @@ namespace Bloxstrap.UI.Elements.Bootstrapper
return tt;
}
private static void ApplyTransformations_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)
private static void ApplyTransformation_UIElement(CustomDialog dialog, string name, DependencyProperty property, UIElement uiElement, XElement xmlElement)
{
var renderTransform = xmlElement.Element($"{xmlElement.Name}.RenderTransform");
var transformElement = xmlElement.Element($"{xmlElement.Name}.{name}");
if (transformElement == null)
return;
if (renderTransform != null)
{
var tg = new TransformGroup();
foreach (var child in renderTransform.Elements())
foreach (var child in transformElement.Elements())
{
Transform element = HandleXml<Transform>(dialog, child);
tg.Children.Add(element);
}
uiElement.RenderTransform = tg;
uiElement.SetValue(property, tg);
}
private static void ApplyTransformations_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)
{
ApplyTransformation_UIElement(dialog, "RenderTransform", FrameworkElement.RenderTransformProperty, uiElement, xmlElement);
ApplyTransformation_UIElement(dialog, "LayoutTransform", FrameworkElement.LayoutTransformProperty, uiElement, xmlElement);
}
#endregion
@ -617,6 +623,9 @@ namespace Bloxstrap.UI.Elements.Bootstrapper
// transfer effect to element grid
dialog.ElementGrid.RenderTransform = dialog.RenderTransform;
dialog.RenderTransform = null;
dialog.ElementGrid.LayoutTransform = dialog.LayoutTransform;
dialog.LayoutTransform = null;
dialog.ElementGrid.Effect = dialog.Effect;
dialog.Effect = null;
@ -651,6 +660,8 @@ namespace Bloxstrap.UI.Elements.Bootstrapper
// get rid of all effects
dialog.RootTitleBar.RenderTransform = null;
dialog.RootTitleBar.LayoutTransform = null;
dialog.RootTitleBar.Effect = null;
Panel.SetZIndex(dialog.RootTitleBar, 1001); // always show above others