Palette bug

Hello,

I have a little layout problem with the palette feature, in WPF.

I reproduced this bug into my solution and in the GoWpfDemo45.sln solution.

First, let me explain what I want to do:

I need to have a vertical list of Groupboxes containing palette. So, I decided to separate these GroupBoxes using a Grid. And then, the bug appears. I have replaced the Grid for a StackPanel but it still has the same behaviour. I tried my code in the GoWpfDemo45 solution and I noticed that the bug was still there.

It doesn't seem to be possible to have a Palette into a StackPanel, or into a Grid without specifying the width or the height of the palette.

In the GoWpfDemo45 solution, I replaced code where palette was used in the Planogram.xaml file, at line 235.

In first case, I replaced the Palette code for this:

[code]

<go:Palette x:Name="nodePalette"

Padding="5" Margin="2" BorderBrush="Black" BorderThickness="1"

Background="White" MaximumSelectionCount="1"

GroupTemplateDictionary="{StaticResource GroupPaletteTemplateDictionary}"

NodeTemplateDictionary="{StaticResource NodeTemplateDictionary}">

<go:Palette x:Name="nodePalette2" Padding="5" Margin="2" BorderBrush="Black" BorderThickness="1" Background="White" MaximumSelectionCount="1"

GroupTemplateDictionary="{StaticResource GroupPaletteTemplateDictionary}"

NodeTemplateDictionary="{StaticResource NodeTemplateDictionary}">

[/code]

The results are the same with the second case. I replaced the Palette code for this:

[code]

<go:Palette x:Name="nodePalette" BorderBrush="Black" BorderThickness="1" Background="White" MaximumSelectionCount="1"

GroupTemplateDictionary="{StaticResource GroupPaletteTemplateDictionary}"

NodeTemplateDictionary="{StaticResource NodeTemplateDictionary}">

[/code]

Then, knowing that, I don't want to set a fix width/height value because I want to be able to resize the palette dimensions by the layout.

How can I do that ?

I don’t think that is a bug – a Diagram is not designed to automatically take the size of its Diagram.Panel.DiagramBounds.

But you could try doing something like:

nodePalette.InitialLayoutCompleted += (s, e) => { nodePalette.Panel.Width = nodePalette.Panel.DiagramBounds.Width; nodePalette.Panel.Height = nodePalette.Panel.DiagramBounds.Height; };