<code><Window x:Class=</code><code>"WPFPopup.RuntimePopup"</code>
<code> </code><code>xmlns=</code><code>"http://schemas.microsoft.com/winfx/2006/xaml/presentation"</code>
<code> </code><code>xmlns:x=</code><code>"http://schemas.microsoft.com/winfx/2006/xaml"</code>
<code> </code><code>Title=</code><code>"RuntimePopup"</code> <code>Height=</code><code>"800"</code> <code>Width=</code><code>"800"</code> <code>Loaded=</code><code>"Window_Loaded"</code><code>></code>
<code> </code><code><StackPanel></code>
<code> </code><code><Button Height=</code><code>"300"</code><code>>T</Button></code>
<code> </code><code><Grid></code>
<code> </code><code><Grid.ColumnDefinitions></code>
<code> </code><code><ColumnDefinition/></code>
<code> </code><code></Grid.ColumnDefinitions></code>
<code> </code><code><CheckBox Name=</code><code>"PCheckBox"</code> <code>Width=</code><code>"100"</code> <code>Margin=</code><code>"60,10,0,0"</code>
<code> </code><code>Content=</code><code>"Popup Window"</code><code>/></code>
<code> </code><code><CheckBox Name=</code><code>"PCheckBox2"</code> <code>Grid.Column=</code><code>"1"</code> <code>Width=</code><code>"100"</code> <code>Margin=</code><code>"0,10,0,0"</code>
<code> </code><code></Grid></code>
<code> </code>
<code> </code><code><Button HorizontalAlignment=</code><code>"Left"</code> <code>Width=</code><code>"169"</code> <code>Margin=</code><code>"10,10,0,0"</code><code>></code>
<code> </code><code><Button.Triggers></code>
<code> </code><code><EventTrigger RoutedEvent=</code><code>"Button.Click"</code><code>></code>
<code> </code><code><BeginStoryboard></code>
<code> </code><code><Storyboard></code>
<code> </code><code><DoubleAnimation</code>
<code> </code><code>Storyboard.TargetName=</code><code>"theTransform"</code>
<code> </code><code>Storyboard.TargetProperty=</code><code>"(RotateTransform.Angle)"</code>
<code> </code><code>From=</code><code>"0"</code> <code>To=</code><code>"360"</code> <code>Duration=</code><code>"0:0:5"</code> <code>AutoReverse=</code><code>"True"</code><code>/></code>
<code> </code><code></Storyboard></code>
<code> </code><code></BeginStoryboard></code>
<code> </code><code></EventTrigger></code>
<code> </code><code></Button.Triggers></code>
<code> </code><code>Start Animation</code>
<code> </code><code></Button></code>
<code> </code><code><Popup x:Name=</code><code>"popusBottom"</code> <code>IsOpen=</code><code>"{Binding ElementName=PCheckBox,Path=IsChecked}"</code>
<code> </code><code>PlacementTarget=</code><code>"{Binding ElementName=PCheckBox}"</code>
<code> </code><code>AllowsTransparency=</code><code>"True"</code>
<code> </code><code>PopupAnimation=</code><code>"Fade"</code>
<code> </code><code>HorizontalOffset=</code><code>"5"</code>
<code> </code><code>VerticalOffset=</code><code>"-120"</code>
<code> </code>
<code> </code><code>> </code>
<code> </code><code><Canvas Margin=</code><code>"150"</code> <code>Background=</code><code>"Green"</code><code>></code>
<code> </code><code><Canvas.RenderTransform></code>
<code> </code><code><RotateTransform x:Name=</code><code>"theTransform"</code> <code>/></code>
<code> </code><code></Canvas.RenderTransform></code>
<code> </code><code><WrapPanel ></code>
<code> </code><code><WrapPanel.Background></code>
<code> </code><code><ImageBrush ImageSource=</code><code>"BG.png"</code><code>/></code>
<code> </code><code></WrapPanel.Background></code>
<code> </code><code><Button Click=</code><code>"Button_Click"</code> <code>Margin=</code><code>"15"</code><code>>Test</Button></code>
<code> </code><code><ListBox Height=</code><code>"90"</code> <code>Margin=</code><code>"15"</code><code>></code>
<code> </code><code><ListBoxItem>Item1</ListBoxItem></code>
<code> </code><code><ListBoxItem>Item2</ListBoxItem></code>
<code> </code><code><ListBoxItem>Item3</ListBoxItem></code>
<code> </code><code></ListBox></code>
<code> </code><code></WrapPanel></code>
<code> </code>
<code> </code><code></Canvas></code>
<code> </code><code></Popup></code>
<code> </code><code><Popup x:Name=</code><code>"popusBottom2"</code> <code>IsOpen=</code><code>"{Binding ElementName=PCheckBox2,Path=IsChecked}"</code>
<code> </code><code>PlacementTarget=</code><code>"{Binding ElementName=PCheckBox2}"</code>
<code> </code><code>VerticalOffset=</code><code>"-120"</code>
<code> </code><code>></code>
<code> </code><code><Canvas Margin=</code><code>"150"</code><code>></code>
<code> </code><code><ImageBrush ImageSource=</code><code>"BG.png"</code><code>/></code>
<code> </code><code><Button Click=</code><code>"Button_Click"</code> <code>Margin=</code><code>"15"</code><code>>Test</Button></code>
<code> </code><code></StackPanel></code>
<code></Window></code>
C# code
<code>public</code> <code>partial</code> <code>class</code> <code>RuntimePopup : Window</code>
<code> </code><code>{</code>
<code> </code><code>public</code> <code>RuntimePopup()</code>
<code> </code><code>{</code>
<code> </code><code>InitializeComponent();</code>
<code> </code><code>LocationChanged +=</code><code>new</code> <code>EventHandler(RuntimePopup_LocationChanged);</code>
<code> </code><code>}</code>
<code> </code><code>void</code> <code>RuntimePopup_LocationChanged(</code><code>object</code> <code>sender, EventArgs e)</code>
<code> </code><code>var</code> <code>mi =</code><code>typeof</code><code>(Popup).GetMethod(</code><code>"UpdatePosition"</code><code>, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);</code>
<code> </code><code>mi.Invoke(popusBottom,</code><code>null</code><code>);</code>
<code> </code><code>private</code> <code>void</code> <code>Button_Click(</code><code>object</code> <code>sender, RoutedEventArgs e)</code>
<code> </code><code>MessageBox.Show(</code><code>"Test"</code><code>);</code>
<code> </code><code>}</code>
本文轉自Work Hard Work Smart部落格園部落格,原文連結:http://www.cnblogs.com/linlf03/archive/2011/12/26/2227674.html,如需轉載請自行聯系原作者