天天看點

WPF popup控件的使用

<code>&lt;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>&gt;</code>

<code>    </code><code>&lt;StackPanel&gt;</code>

<code>        </code><code>&lt;Button Height=</code><code>"300"</code><code>&gt;T&lt;/Button&gt;</code>

<code>        </code><code>&lt;Grid&gt;</code>

<code>            </code><code>&lt;Grid.ColumnDefinitions&gt;</code>

<code>                </code><code>&lt;ColumnDefinition/&gt;</code>

<code>            </code><code>&lt;/Grid.ColumnDefinitions&gt;</code>

<code>            </code><code>&lt;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>/&gt;</code>

<code>            </code><code>&lt;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>&lt;/Grid&gt;</code>

<code>       </code> 

<code>        </code><code>&lt;Button HorizontalAlignment=</code><code>"Left"</code> <code>Width=</code><code>"169"</code> <code>Margin=</code><code>"10,10,0,0"</code><code>&gt;</code>

<code>            </code><code>&lt;Button.Triggers&gt;</code>

<code>                </code><code>&lt;EventTrigger RoutedEvent=</code><code>"Button.Click"</code><code>&gt;</code>

<code>                    </code><code>&lt;BeginStoryboard&gt;</code>

<code>                        </code><code>&lt;Storyboard&gt;</code>

<code>                            </code><code>&lt;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>/&gt;</code>

<code>                        </code><code>&lt;/Storyboard&gt;</code>

<code>                    </code><code>&lt;/BeginStoryboard&gt;</code>

<code>                </code><code>&lt;/EventTrigger&gt;</code>

<code>            </code><code>&lt;/Button.Triggers&gt;</code>

<code>            </code><code>Start Animation</code>

<code>        </code><code>&lt;/Button&gt;</code>

<code>        </code><code>&lt;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>&gt;   </code>

<code>            </code><code>&lt;Canvas  Margin=</code><code>"150"</code> <code>Background=</code><code>"Green"</code><code>&gt;</code>

<code>                </code><code>&lt;Canvas.RenderTransform&gt;</code>

<code>                    </code><code>&lt;RotateTransform x:Name=</code><code>"theTransform"</code> <code>/&gt;</code>

<code>                </code><code>&lt;/Canvas.RenderTransform&gt;</code>

<code>                </code><code>&lt;WrapPanel &gt;</code>

<code>                    </code><code>&lt;WrapPanel.Background&gt;</code>

<code>                        </code><code>&lt;ImageBrush ImageSource=</code><code>"BG.png"</code><code>/&gt;</code>

<code>                    </code><code>&lt;/WrapPanel.Background&gt;</code>

<code>                     </code><code>&lt;Button Click=</code><code>"Button_Click"</code> <code>Margin=</code><code>"15"</code><code>&gt;Test&lt;/Button&gt;</code>

<code>                    </code><code>&lt;ListBox Height=</code><code>"90"</code> <code>Margin=</code><code>"15"</code><code>&gt;</code>

<code>                        </code><code>&lt;ListBoxItem&gt;Item1&lt;/ListBoxItem&gt;</code>

<code>                        </code><code>&lt;ListBoxItem&gt;Item2&lt;/ListBoxItem&gt;</code>

<code>                        </code><code>&lt;ListBoxItem&gt;Item3&lt;/ListBoxItem&gt;</code>

<code>                    </code><code>&lt;/ListBox&gt;</code>

<code>                </code><code>&lt;/WrapPanel&gt;</code>

<code>               </code> 

<code>            </code><code>&lt;/Canvas&gt;</code>

<code>        </code><code>&lt;/Popup&gt;</code>

<code>        </code><code>&lt;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>&gt;</code>

<code>            </code><code>&lt;Canvas Margin=</code><code>"150"</code><code>&gt;</code>

<code>                        </code><code>&lt;ImageBrush   ImageSource=</code><code>"BG.png"</code><code>/&gt;</code>

<code>                    </code><code>&lt;Button Click=</code><code>"Button_Click"</code> <code>Margin=</code><code>"15"</code><code>&gt;Test&lt;/Button&gt;</code>

<code>    </code><code>&lt;/StackPanel&gt;</code>

<code>&lt;/Window&gt;</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,如需轉載請自行聯系原作者