如何在应用程序窗口wpf中保留Popup

时间:2015-08-19 06:50:52

标签: c# .net wpf user-interface caliburn

每当我按下按钮时,我一直试图弹出一个弹出窗口。 然而。假设我在弹出窗口中有很多文本,然后它可以遍历应用程序窗口边界。

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

在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>

1 个答案:

答案 0 :(得分:1)

检查出来:

Custom popup and windows in WPF the MVVM way

样品也可用