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", "VerticalAlignment": "VerticalAlignment",
"ZIndex": "int", "ZIndex": "int",
"RenderTransform": "Transform", "RenderTransform": "Transform",
"LayoutTransform": "Transform",
"Opacity": "double", "Opacity": "double",
"OpacityMask": "Brush", "OpacityMask": "Brush",
"RenderTransformOrigin": "Point" "RenderTransformOrigin": "Point"

View File

@ -285,22 +285,28 @@ namespace Bloxstrap.UI.Elements.Bootstrapper
return tt; 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(); var tg = new TransformGroup();
foreach (var child in renderTransform.Elements()) foreach (var child in transformElement.Elements())
{ {
Transform element = HandleXml<Transform>(dialog, child); Transform element = HandleXml<Transform>(dialog, child);
tg.Children.Add(element); 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 #endregion
@ -617,6 +623,9 @@ namespace Bloxstrap.UI.Elements.Bootstrapper
// transfer effect to element grid // transfer effect to element grid
dialog.ElementGrid.RenderTransform = dialog.RenderTransform; dialog.ElementGrid.RenderTransform = dialog.RenderTransform;
dialog.RenderTransform = null; dialog.RenderTransform = null;
dialog.ElementGrid.LayoutTransform = dialog.LayoutTransform;
dialog.LayoutTransform = null;
dialog.ElementGrid.Effect = dialog.Effect; dialog.ElementGrid.Effect = dialog.Effect;
dialog.Effect = null; dialog.Effect = null;
@ -651,6 +660,8 @@ namespace Bloxstrap.UI.Elements.Bootstrapper
// get rid of all effects // get rid of all effects
dialog.RootTitleBar.RenderTransform = null; dialog.RootTitleBar.RenderTransform = null;
dialog.RootTitleBar.LayoutTransform = null;
dialog.RootTitleBar.Effect = null; dialog.RootTitleBar.Effect = null;
Panel.SetZIndex(dialog.RootTitleBar, 1001); // always show above others Panel.SetZIndex(dialog.RootTitleBar, 1001); // always show above others