<?xml encoding=”UTF-8″>By Deepak Nadig
This is my first post of 2017 and here is wishing you all a “Happy New Year” :-)
Recently, we had a query from an ADN partner:
How to roll up a docked and hidden custom PaletteSet using.NET API ?
The behaviour the ADN partner is expecting to be accomplished using .NET API can be seen in the below screencast:
With the help of my colleague Madhu, we figured out the answer is to set PaletteSet.RolledUp to false.
In the below code, command MyPalette launches a docked palette and command ExpandPalette rolls up the palette. Subsequently, screencast shows the testing of the code.
<span>public</span> <span>class</span> MyCommands
<span>{</span>
<span>static</span> System<span>.</span>Windows<span>.</span>Forms<span>.</span>Timer Clock<span>;</span>
<span>public</span> <span>static</span> PaletteSet m_ps <span>=</span> <span>null</span><span>;</span>
<span>[</span>CommandMethod<span>(</span><span>"</span><span>MyPalette</span><span>"</span><span>)</span><span>]</span>
<span>public</span> <span>void</span> MyPalette<span>(</span><span>)</span>
<span>{</span>
<span>if</span> <span>(</span>m_ps <span>=</span><span>=</span> <span>null</span><span>)</span>
<span>{</span>
m_ps <span>=</span> <span>new</span> PaletteSet<span>(</span><span>"</span><span>My Palette 1</span><span>"</span><span>,</span>
<span>new</span> Guid<span>(</span><span>"</span><span>170B0084-7B01-487E-9CBC-C7018588F26F</span><span>"</span><span>)</span><span>)</span><span>;</span>
m_ps<span>.</span>SetLocation<span>(</span><span>new</span> System<span>.</span>Drawing<span>.</span>Point<span>(</span><span>312</span><span>,</span> <span>763</span><span>)</span><span>)</span><span>;</span>
m_ps<span>.</span>SetSize<span>(</span><span>new</span> System<span>.</span>Drawing<span>.</span>Size<span>(</span><span>909</span><span>,</span> <span>40</span><span>)</span><span>)</span><span>;</span>
m_ps<span>.</span>DockEnabled <span>=</span> DockSides<span>.</span>Bottom<span>;</span>
<span>if</span> <span>(</span>m_ps<span>.</span>Dock <span>=</span><span>=</span> DockSides<span>.</span>None<span>)</span>
<span>{</span>
m_ps<span>.</span>AutoRollUp <span>=</span> <span>true</span><span>;</span>
m_ps<span>.</span>Visible <span>=</span> <span>false</span><span>;</span>
m_ps<span>.</span>Visible <span>=</span> <span>true</span><span>;</span>
<span>}</span>
<span>// If the palette is docked,</span>
<span>// we need to undock it first.</span>
<span>else</span>
<span>{</span>
m_ps<span>.</span>Visible <span>=</span> <span>false</span><span>;</span>
m_ps<span>.</span>Visible <span>=</span> <span>true</span><span>;</span>
CreateTimer<span>(</span><span>)</span><span>;</span>
<span>}</span>
<span>}</span>
m_ps<span>.</span>Visible <span>=</span> <span>true</span><span>;</span>
<span>}</span>
<span>public</span> <span>static</span> <span>void</span> CreateTimer<span>(</span><span>)</span>
<span>{</span>
Clock <span>=</span> <span>new</span> System<span>.</span>Windows<span>.</span>Forms<span>.</span>Timer<span>(</span><span>)</span><span>;</span>
Clock<span>.</span>Interval <span>=</span> <span>500</span><span>;</span>
Clock<span>.</span>Start<span>(</span><span>)</span><span>;</span>
Clock<span>.</span>Tick <span>+</span><span>=</span> <span>new</span> EventHandler<span>(</span>Timer_Tick<span>)</span><span>;</span>
<span>}</span>
<span>static</span> <span>public</span> <span>void</span> Timer_Tick<span>(</span><span>object</span> sender<span>,</span>
EventArgs eArgs<span>)</span>
<span>{</span>
<span>if</span> <span>(</span>sender <span>=</span><span>=</span> Clock<span>)</span>
<span>{</span>
m_ps<span>.</span>Dock <span>=</span> DockSides<span>.</span>None<span>;</span>
m_ps<span>.</span>AutoRollUp <span>=</span> <span>true</span><span>;</span>
m_ps<span>.</span>Dock <span>=</span> DockSides<span>.</span>Left<span>;</span>
<span>// Note: we need to update the palette</span>
<span>// window. I found turning it off and</span>
<span>// on is the most robust way.</span>
m_ps<span>.</span>Visible <span>=</span> <span>false</span><span>;</span>
m_ps<span>.</span>Visible <span>=</span> <span>true</span><span>;</span>
<span>// Stop the clock and destroy it.</span>
Clock<span>.</span>Stop<span>(</span><span>)</span><span>;</span>
Clock<span>.</span>Dispose<span>(</span><span>)</span><span>;</span>
<span>}</span>
<span>}</span>
<span>[</span>CommandMethod<span>(</span><span>"</span><span>ExpandPalette</span><span>"</span><span>)</span><span>]</span>
<span>public</span> <span>static</span> <span>void</span> CheckPaletteSetState<span>(</span><span>)</span>
<span>{</span>
<span>if</span> <span>(</span>m_ps <span>!</span><span>=</span> <span>null</span><span>)</span>
<span>{</span>
m_ps<span>.</span>RolledUp <span>=</span> <span>false</span><span>;</span>
<span>}</span>
<span>}</span>
<span>}</span>
Screencast :
<
p class=”asset-video”>

Leave a Reply to mapquest directionsCancel reply