如何在应用程序 window wpf 中保留弹出窗口

How to keep Popup in Application window wpf

我一直在尝试在按下按钮时弹出窗口。 然而。可以说我在那个弹出窗口上有很多文本,然后它可以越过应用程序 window 边界。

如何在 xaml 代码中告诉弹出窗口保持在应用程序 window 范围内?

如果 xaml 代码中的一些示例说明如何告诉 Popup 元素保留在应用程序中,那就太好了

谢谢

Xaml代码:

...
    <ToggleButton Grid.Row="1" Grid.Column="1" Margin="0,4"
        x:Name="Somethingname"
        Height="30"
        Template="{StaticResource ComboBoxToggleButton}"
        Content="Hello man"/>
    <Popup Grid.Row="1" Grid.Column="1" x:Name="PopupMe"
            Style="{StaticResource PopupStyle}"
            ClipToBounds="True">

            <TreeView ItemsSource="{Binding SomeObservableCollection}"
                      Width="{Binding ElementName=DetaljerHjemmmelToggler, Path=ActualWidth}"
                      ItemTemplate="{StaticResource SomeTemplate}"
                      cal:Message.Attach="[Event SelectedItemChanged] = [Action TreeView_SelectedItem($this, $source)]">

             </TreeView>
    </Popup>
    ...     

在 ResourceDictionary XAML 文件中:

<HierarchicalDataTemplate x:Key="SomeTemplate" ItemsSource="{Binding ChildrenCollection}">
    <TextBlock Text="{Binding Path=TekstBlaaah}" Style="{StaticResource Label}"/>
</HierarchicalDataTemplate>

    <Style TargetType="{x:Type Popup}" x:Key="PopupStyle">
    <Setter Property="IsOpen" Value="{Binding ElementName=Somethingname, Path=IsChecked}"/>
    <Setter Property="AllowsTransparency" Value="True"/>
    <Setter Property="PlacementTarget" Value="{Binding ElementName=Somethingname}"/>
    <Setter Property="PopupAnimation" Value="Slide"/>
    <Setter Property="StaysOpen" Value="False" />
    <Setter Property="Placement" Value="Bottom"/>
</Style>

查看:

Custom popup and windows in WPF the MVVM way

样品也可用