How to resize the Nodes present inside a Group?

Hi,

In my code I am creates a group for nodes when they are brought closer to each other by user. When a node comes in contact with other I am creating a new Group Node (by setting IsSubGraph to true) & updating the existing nodes Subgraph key. It works fine for me.

Now my requirement is to resize the nodes when group is resized. By default if we resize the group, the nodes inside the group doesn’t change size. Is it possible to resize nodes inside the group ?

I tried to do it from code behind by hooking to the sizechange event of group template & update each node size. But unfortunately when I update the size of node GoDiagram again try to resize the Group & I get almost recursive size change on group. Here is how my XAML & code looks like

            <DataTemplate x:Key="GroupTemplate2">
                <Border x:Name="myBorder"
                        BorderBrush="Green"
                        BorderThickness="2"
                        CornerRadius="5"
                        go:Group.Ungroupable="True"
                        go:Node.Location="{Binding Path=Data.NodeLocation,
                                                   Mode=TwoWay}"
                        go:Node.LocationElementName="myBorder"
                        go:Part.Movable="True"
                        
                      SizeChanged="Group_SizeChanged"
                        go:Part.Selectable="True"
                        go:Part.SelectionAdorned="True"    go:Part.Resizable="True"
                        go:Part.SelectionElementName="myBorder">
                    <Grid>
                        <Rectangle HorizontalAlignment="Stretch"
                                   VerticalAlignment="Stretch"
                                   Panel.ZIndex="3"
                                   Fill="AliceBlue"
                                   MouseEnter="Rectangle_MouseEnter"
                                   MouseLeave="Rectangle_MouseLeave"
                                   Opacity=".3"
                                   PreviewMouseLeftButtonDown="Rectangle_PreviewMouseLeftButtonDown"
                                   PreviewMouseLeftButtonUp="myBorder_PreviewMouseLeftButtonUp"
                                   PreviewMouseMove="Rectangle_PreviewMouseMove" />
                        <local:ResizableGroupPannel x:Name="myGroupPanel"
                                       MouseEnter="myGroupPanel_MouseEnter"
                                       MouseLeave="myGroupPanel_MouseLeave"
                                       Padding="5"
                                       SurroundsMembersAfterDrop="True">
                        </local:ResizableGroupPannel>
                    </Grid>
                </Border>
            </DataTemplate>

private void Group_SizeChanged(object sender, SizeChangedEventArgs e)

{

var node =

((Northwoods.GoXam.PartManager.PartBinding)(((Border)(sender)).DataContext));

if(node == null || e.PreviousSize == new Size(0.0,0.0))

return;

var nodeData = (Node)node.Node.Data;

if(!nodeData.IsSubGraph)

return;

var diff = new Point(e.NewSize.Height - e.PreviousSize.Height, e.NewSize.Width - e.PreviousSize.Width);

if(diff.X == 0.0 && diff.Y == 0.0)

return;

var containingNodes = node.Group.MemberNodes;

foreach (var containingNode in containingNodes)

{

var memberNode = containingNode;

if(memberNode == null)

continue;

var data = (Node)memberNode.Data;

data.Height += diff.X;

data.Width += diff.Y;

}

}

I wouldn’t do it that way. I think it is more natural to customize the ResizingTool. Maybe something like:

public class MultiResizingTool : ResizingTool { protected override void DoResize(Rect newr) { base.DoResize(newr); foreach (Node n in this.Diagram.SelectedParts.OfType<Node>()) { FrameworkElement elt = n.SelectionElement; if (elt == null || elt == this.AdornedElement) continue; elt.Width = newr.Width; elt.Height = newr.Height; } } }
Install by replacing the Diagram.ResizingTool, either in XAML or in code.

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Thanks a lot for Quick Info.<?: prefix = o ns = “urn:schemas-microsoft-com:office:office” /><o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>But still it is difficult to maintain the aspect ratio of
the nodes present inside the group.<o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Here is the code <o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> public class MultiResizingTool : ResizingTool<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> protected override void DoResize(Rect newr)<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> base.DoResize(newr);<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> var diff = new Point(this.AdornedNode.Bounds.Size.Height - OriginalBounds.Size.Height,<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> this.AdornedNode.Bounds.Size.Width - OriginalBounds.Size.Width);<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> //Check for GroupNode<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> var group = this.AdornedNode as Group;<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> <o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> if(group != null)<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> //Change the dimention of group members <o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> foreach(var node in group.MemberNodes)<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> ((Node)node.Data).Height += diff.X;<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> ((Node)node.Data).Width += diff.Y;<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”><o:p> </o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Also if I try to enlarge the group the nodes sizes are
crossing the group boundaries. It looks like below<o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Ideally if you change the group size all the nodes should
adjust accordingly. like this

<p style=“margin: 0in 0in 10pt;” =“Msonormal”><?: prefix = v ns = “urn:schemas-microsoft-com:vml” /><v:group style=“width: 152.25pt; height: 153.75pt; margin-top: 58.5pt; margin-left: 16.7pt; : ; : 251659264; mso-width-relative: margin; mso-height-relative: margin;” id=“Group_x0020_5” o:gfx=“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 AADoDQAAAAA= " coordsize=“23717,22288” o:spid=”_x0000_s1026">
<v:oval style=“visibility: ; : ; mso-wrap-style: square; v-text-anchor: middle;” id=“Oval_x0020_2” o:gfx=“UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH 74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0 N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ 3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4 jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAOFHbU8UA AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPT2vCQBTE74LfYXlCL6KbegglZhUtWAr1UP+h3h7Z ZxLMvk2zW4399K5Q8DjMzG+YdNqaSlyocaVlBa/DCARxZnXJuYLtZjF4A+E8ssbKMim4kYPppNtJ MdH2yiu6rH0uAoRdggoK7+tESpcVZNANbU0cvJNtDPogm1zqBq8Bbio5iqJYGiw5LBRY03tB2Xn9 axQc48Wc4++vPi9rl813H/h32P8o9dJrZ2MQnlr/DP+3P7WCETyuhBsgJ3cAAAD//wMAUEsBAi0A FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54 bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl eG1sLnhtbFBLAQItABQABgAIAAAAIQA4UdtTxQAAANoAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA " o:spid=”_x0000_s1027" strokeweight=“2pt” strokecolor="#243f60 1604" fillcolor="#4f81bd 3204">
<v:shape id="_x0000_t5" coordsize=“21600,21600” path=“m@0,l,21600r21600,xe” adj=“10800” o:spt=“5”>
<v:stroke joinstyle=“miter”>
<v:ulas>
<v:f eqn=“val #0”>
<v:f eqn=“prod #0 1 2”>
<v:f eqn=“sum @1 10800 0”>
</v:f></v:f></v:f></v:ulas>
<v:path textrect=“0,10800,10800,18000;5400,10800,16200,18000;10800,10800,21600,18000;0,7200,7200,21600;7200,7200,14400,21600;14400,7200,21600,21600” o:connectlocs="@0,0;@1,10800;0,21600;10800,21600;21600,21600;@2,10800" o:connect=“custom” gradientshapeok=“t”>
<v:handles>
<v:h xrange=“0,21600” ="#0,topLeft">
</v:h></v:handles>
</v:path></v:stroke></v:shape><v:shape style=“visibility: ; : ; mso-wrap-style: square; v-text-anchor: middle;” id=“Isosceles_x0020_Triangle_x0020_3” o:gfx=“UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH 74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0 N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ 3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4 jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAiqy5yMIA AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPwWrDMBBE74X8g9hAb7XsFkrtRDHGxNBDL03yAYu1 sZxYK8dSHffvq0Khx2Fm3jDbcrGDmGnyvWMFWZKCIG6d7rlTcDo2T28gfEDWODgmBd/kodytHrZY aHfnT5oPoRMRwr5ABSaEsZDSt4Ys+sSNxNE7u8liiHLqpJ7wHuF2kM9p+iot9hwXDI5UG2qvhy+r 4MMsua6z43DJWd6yve1wbiqlHtdLtQERaAn/4b/2u1bwAr9X4g2Qux8AAAD//wMAUEsBAi0AFAAG AAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQ SwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJlbHNQ SwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBleG1s LnhtbFBLAQItABQABgAIAAAAIQCKrLnIwgAAANoAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMvZG93 bnJldi54bWxQSwUGAAAAAAQABAD1AAAAhwMAAAAA " o:spid=”_x0000_s1028" strokeweight=“2pt” strokecolor="#243f60 1604" fillcolor="#4f81bd 3204" ="#_x0000_t5">
<v:shape id="_x0000_t70" coordsize=“21600,21600” path=“m10800,l21600@0@3@0@3@2,21600@2,10800,21600,0@2@1@2@1@0,0@0xe” adj=“5400,4320” o:spt=“70”>
<v:stroke joinstyle=“miter”>
<v:ulas>
<v:f eqn=“val #1”>
<v:f eqn=“val #0”>
<v:f eqn=“sum 21600 0 #1”>
<v:f eqn=“sum 21600 0 #0”>
<v:f eqn=“prod #1 #0 10800”>
<v:f eqn=“sum #1 0 @4”>
<v:f eqn=“sum 21600 0 @5”>
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:ulas>
<v:path textrect="@1,@5,@3,@6" o:connectlocs=“10800,0;0,@0;@1,10800;0,@2;10800,21600;21600,@2;@3,10800;21600,@0” o:connect=“custom” o:connectangles=“270,180,180,180,90,0,0,0”>
<v:handles>
<v:h xrange=“0,10800” ="#0,#1" yrange=“0,10800”>
</v:h></v:handles>
</v:path></v:stroke></v:shape><v:shape style=“visibility: ; : ; mso-wrap-style: square; v-text-anchor: middle;” id=“Up-Down_x0020_Arrow_x0020_4” o:gfx=“UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH 74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0 N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ 3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4 jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAukJuKsUA AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPS2vDMBCE74X+B7GF3hq5oYTEiRxKQ0qhhzyaBHJb pPWDWitjqbbz76NAoMdhZr5hFsvB1qKj1leOFbyOEhDE2pmKCwWHn/XLFIQPyAZrx6TgQh6W2ePD AlPjet5Rtw+FiBD2KSooQ2hSKb0uyaIfuYY4erlrLYYo20KaFvsIt7UcJ8lEWqw4LpTY0EdJ+nf/ ZxVo3a1mu89+9n0+cX4yK3nZHjdKPT8N73MQgYbwH763v4yCN7hdiTdAZlcAAAD//wMAUEsBAi0A FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54 bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl eG1sLnhtbFBLAQItABQABgAIAAAAIQC6Qm4qxQAAANoAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA " o:spid=”_x0000_s1029" strokeweight=“2pt” strokecolor="#243f60 1604" fillcolor="#4f81bd 3204" adj=",3295" ="#_x0000_t70">
</v:shape></v:shape></v:oval></v:group>Before
changing group size <o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Thanks a lot for Quick Info.<?: prefix = o ns = “urn:schemas-microsoft-com:office:office” /><o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>But still it is difficult to maintain the aspect ratio of
the nodes present inside the group.<o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Here is the code <o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> public class MultiResizingTool : ResizingTool<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> protected override void DoResize(Rect newr)<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> base.DoResize(newr);<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> var diff = new Point(this.AdornedNode.Bounds.Size.Height - OriginalBounds.Size.Height,<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> this.AdornedNode.Bounds.Size.Width - OriginalBounds.Size.Width);<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> //Check for GroupNode<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> var group = this.AdornedNode as Group;<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> <o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> if(group != null)<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> //Change the dimention of group members <o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> foreach(var node in group.MemberNodes)<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> {<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> ((Node)node.Data).Height += diff.X;<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> ((Node)node.Data).Width += diff.Y;<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=": white; margin: 0in 0in 0pt; line-height: normal; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;" =“Msonormal”> }<o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”><o:p> </o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Also if I try to enlarge the group the nodes sizes are
crossing the group boundaries. It looks like below<o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Ideally if you change the group size all the nodes should
adjust accordingly. like this

<p style=“margin: 0in 0in 10pt;” =“Msonormal”><?: prefix = v ns = “urn:schemas-microsoft-com:vml” /><v:group style=“width: 152.25pt; height: 153.75pt; margin-top: 58.5pt; margin-left: 16.7pt; : ; : 251659264; mso-width-relative: margin; mso-height-relative: margin;” id=“Group_x0020_5” o:gfx=“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 AADoDQAAAAA= " coordsize=“23717,22288” o:spid=”_x0000_s1026">
<v:oval style=“visibility: ; : ; mso-wrap-style: square; v-text-anchor: middle;” id=“Oval_x0020_2” o:gfx=“UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH 74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0 N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ 3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4 jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAOFHbU8UA AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPT2vCQBTE74LfYXlCL6KbegglZhUtWAr1UP+h3h7Z ZxLMvk2zW4399K5Q8DjMzG+YdNqaSlyocaVlBa/DCARxZnXJuYLtZjF4A+E8ssbKMim4kYPppNtJ MdH2yiu6rH0uAoRdggoK7+tESpcVZNANbU0cvJNtDPogm1zqBq8Bbio5iqJYGiw5LBRY03tB2Xn9 axQc48Wc4++vPi9rl813H/h32P8o9dJrZ2MQnlr/DP+3P7WCETyuhBsgJ3cAAAD//wMAUEsBAi0A FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54 bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl eG1sLnhtbFBLAQItABQABgAIAAAAIQA4UdtTxQAAANoAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA " o:spid=”_x0000_s1027" strokeweight=“2pt” strokecolor="#243f60 1604" fillcolor="#4f81bd 3204">
<v:shape id="_x0000_t5" coordsize=“21600,21600” path=“m@0,l,21600r21600,xe” adj=“10800” o:spt=“5”>
<v:stroke joinstyle=“miter”>
<v:ulas>
<v:f eqn=“val #0”>
<v:f eqn=“prod #0 1 2”>
<v:f eqn=“sum @1 10800 0”>
</v:f></v:f></v:f></v:ulas>
<v:path textrect=“0,10800,10800,18000;5400,10800,16200,18000;10800,10800,21600,18000;0,7200,7200,21600;7200,7200,14400,21600;14400,7200,21600,21600” o:connectlocs="@0,0;@1,10800;0,21600;10800,21600;21600,21600;@2,10800" o:connect=“custom” gradientshapeok=“t”>
<v:handles>
<v:h xrange=“0,21600” ="#0,topLeft">
</v:h></v:handles>
</v:path></v:stroke></v:shape><v:shape style=“visibility: ; : ; mso-wrap-style: square; v-text-anchor: middle;” id=“Isosceles_x0020_Triangle_x0020_3” o:gfx=“UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH 74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0 N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ 3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4 jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAiqy5yMIA AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPwWrDMBBE74X8g9hAb7XsFkrtRDHGxNBDL03yAYu1 sZxYK8dSHffvq0Khx2Fm3jDbcrGDmGnyvWMFWZKCIG6d7rlTcDo2T28gfEDWODgmBd/kodytHrZY aHfnT5oPoRMRwr5ABSaEsZDSt4Ys+sSNxNE7u8liiHLqpJ7wHuF2kM9p+iot9hwXDI5UG2qvhy+r 4MMsua6z43DJWd6yve1wbiqlHtdLtQERaAn/4b/2u1bwAr9X4g2Qux8AAAD//wMAUEsBAi0AFAAG AAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQ SwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJlbHNQ SwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBleG1s LnhtbFBLAQItABQABgAIAAAAIQCKrLnIwgAAANoAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMvZG93 bnJldi54bWxQSwUGAAAAAAQABAD1AAAAhwMAAAAA " o:spid=”_x0000_s1028" strokeweight=“2pt” strokecolor="#243f60 1604" fillcolor="#4f81bd 3204" ="#_x0000_t5">
<v:shape id="_x0000_t70" coordsize=“21600,21600” path=“m10800,l21600@0@3@0@3@2,21600@2,10800,21600,0@2@1@2@1@0,0@0xe” adj=“5400,4320” o:spt=“70”>
<v:stroke joinstyle=“miter”>
<v:ulas>
<v:f eqn=“val #1”>
<v:f eqn=“val #0”>
<v:f eqn=“sum 21600 0 #1”>
<v:f eqn=“sum 21600 0 #0”>
<v:f eqn=“prod #1 #0 10800”>
<v:f eqn=“sum #1 0 @4”>
<v:f eqn=“sum 21600 0 @5”>
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:ulas>
<v:path textrect="@1,@5,@3,@6" o:connectlocs=“10800,0;0,@0;@1,10800;0,@2;10800,21600;21600,@2;@3,10800;21600,@0” o:connect=“custom” o:connectangles=“270,180,180,180,90,0,0,0”>
<v:handles>
<v:h xrange=“0,10800” ="#0,#1" yrange=“0,10800”>
</v:h></v:handles>
</v:path></v:stroke></v:shape><v:shape style=“visibility: ; : ; mso-wrap-style: square; v-text-anchor: middle;” id=“Up-Down_x0020_Arrow_x0020_4” o:gfx=“UEsDBBQABgAIAAAAIQDw94q7/QAAAOIBAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbJSRzUrEMBDH 74LvEOYqbaoHEWm6B6tHFV0fYEimbdg2CZlYd9/edD8u4goeZ+b/8SOpV9tpFDNFtt4puC4rEOS0 N9b1Cj7WT8UdCE7oDI7ekYIdMayay4t6vQvEIrsdKxhSCvdSsh5oQi59IJcvnY8TpjzGXgbUG+xJ 3lTVrdTeJXKpSEsGNHVLHX6OSTxu8/pAEmlkEA8H4dKlAEMYrcaUSeXszI+W4thQZudew4MNfJUx QP7asFzOFxx9L/lpojUkXjGmZ5wyhjSRJQ8YKGvKv1MWzIkL33VWU9lGfl98J6hz4cZ/uUjzf7Pb bHuj+ZQu9z/UfAMAAP//AwBQSwMEFAAGAAgAAAAhADHdX2HSAAAAjwEAAAsAAABfcmVscy8ucmVs c6SQwWrDMAyG74O9g9G9cdpDGaNOb4VeSwe7CltJTGPLWCZt376mMFhGbzvqF/o+8e/2tzCpmbJ4 jgbWTQuKomXn42Dg63xYfYCSgtHhxJEM3Elg372/7U40YalHMvokqlKiGBhLSZ9aix0poDScKNZN zzlgqWMedEJ7wYH0pm23Ov9mQLdgqqMzkI9uA+p8T9X8hx28zSzcl8Zy0Nz33r6iasfXeKK5UjAP VAy4LM8w09zU50C/9q7/6ZURE31X/kL8TKv1x6wXNXYPAAAA//8DAFBLAwQUAAYACAAAACEAMy8F nkEAAAA5AAAAEAAAAGRycy9zaGFwZXhtbC54bWyysa/IzVEoSy0qzszPs1Uy1DNQUkjNS85PycxL t1UKDXHTtVBSKC5JzEtJzMnPS7VVqkwtVrK34+UCAAAA//8DAFBLAwQUAAYACAAAACEAukJuKsUA AADaAAAADwAAAGRycy9kb3ducmV2LnhtbESPS2vDMBCE74X+B7GF3hq5oYTEiRxKQ0qhhzyaBHJb pPWDWitjqbbz76NAoMdhZr5hFsvB1qKj1leOFbyOEhDE2pmKCwWHn/XLFIQPyAZrx6TgQh6W2ePD AlPjet5Rtw+FiBD2KSooQ2hSKb0uyaIfuYY4erlrLYYo20KaFvsIt7UcJ8lEWqw4LpTY0EdJ+nf/ ZxVo3a1mu89+9n0+cX4yK3nZHjdKPT8N73MQgYbwH763v4yCN7hdiTdAZlcAAAD//wMAUEsBAi0A FAAGAAgAAAAhAPD3irv9AAAA4gEAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54 bWxQSwECLQAUAAYACAAAACEAMd1fYdIAAACPAQAACwAAAAAAAAAAAAAAAAAuAQAAX3JlbHMvLnJl bHNQSwECLQAUAAYACAAAACEAMy8FnkEAAAA5AAAAEAAAAAAAAAAAAAAAAAApAgAAZHJzL3NoYXBl eG1sLnhtbFBLAQItABQABgAIAAAAIQC6Qm4qxQAAANoAAAAPAAAAAAAAAAAAAAAAAJgCAABkcnMv ZG93bnJldi54bWxQSwUGAAAAAAQABAD1AAAAigMAAAAA " o:spid=”_x0000_s1029" strokeweight=“2pt” strokecolor="#243f60 1604" fillcolor="#4f81bd 3204" adj=",3295" ="#_x0000_t70">
</v:shape></v:shape></v:oval></v:group>Before
changing group size <o:p></o:p>


After
changing group size.



<p style=“margin: 0in 0in 10pt;” =“Msonormal”>My expectation is that it should be a feature in GoXam
grouping . Is there any other easy way to achieve it.<o:p></o:p>

It doesn’t make sense to me why the resize code would add the same height (or width) to each member node. I would have thought that you would want to maintain proportionality.

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Exactly it’s just a demo sample, where I am
trying to resize each node based on the change in the height & width of
Group. So if increase the height & width of group by 4 pixel, my each node
size should increase by 4 pixel. <?: prefix = o ns = “urn:schemas-microsoft-com:office:office” /><o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>But if I have to maintain proportionality
of each node it’s become quite difficult to do (or if you can share some demo
code where proportionality is maintain when group is resized it would be satisfy
my need).<o:p></o:p>

<p style=“margin: 0in 0in 10pt;” =“Msonormal”>Also if you see the 1st image
even I am adding just the difference of changed dimension of group. But my node
inside the group is coming out of group boundary. Which is not usual?
<o:p></o:p>

Take a look at your desired-behavior screenshots. Let’s just talk about width, because I assume height changes should be handled similarly.

Before the resize let’s say the “group” is 250 wide. Afterwards it looks about 500 wide. Do you really want to add 500-250 = 250 width to each of the members? No, I think you want to (500/250 = 2) double their sizes. Proportional sizing means you should multiply by a ratio, not add by a difference.

But what about coordinates of Nodes inside group how they will be adjusted ?

Well, you can do what you want, but I would adjust the Node.Location to keep each node centered where it was if the Node.LocationSpot=“Center”, and I would not adjust the Node.Location if the Node.LocationSpot=“TopLeft” (the default value).