Можно ли установить UserControl всегда сверху приложения? - PullRequest
0 голосов
/ 04 марта 2019

Я делаю опцию обратной связи в своем приложении WPF.Главное окно имеет TabControl и строку состояния ниже.В строке состояния есть кнопка, которая показывает FeedBackView с анимацией.

Итак, FeedBackView - это не окно, а UserControl, который содержится в Canvas Border.

В приложении есть несколько опций, которые открывают другие модальные окна, поэтому в данный момент форма обратной связи недоступна.Я пытался установить Panel.ZIndex = 1, и это не помогло.Так есть ли способ установить форму сверху в приложении?

<UserControl x:Class="UPR.Wpf.App.Views.StatusBarContentView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:v="clr-namespace:UPR.Wpf.App.Views.FeedBack"
             xmlns:vm="clr-namespace:UPR.Wpf.App"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800" Loaded="UserControl_Loaded">

    <UserControl.Resources>        
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="../../Styles/Buttons.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <BooleanToVisibilityConverter x:Key="xBooleanToVisibilityConverter"/>
        </ResourceDictionary>
    </UserControl.Resources>

    <Canvas>
        <Button Name="FeedBackButton"                
                Click="FeedBackButton_Click"                    
                Loaded="FeedBackButton_Loaded"
                BorderThickness="0.5"
                BorderBrush="Gray"
                Foreground="White"
                FontWeight="Bold"
                FontSize="15"
                Height="32"
                Canvas.Bottom="-17"
                Canvas.Right="-150">
        </Button>
        <Border BorderBrush="Gray"
                Panel.ZIndex="1"
                BorderThickness="2"
                Name="border" 
                Margin="-350,0,-178,-9" 
                Background="White"
                Canvas.Bottom="24"
                Canvas.Right="-5"
                SizeChanged="border_SizeChanged">
            <v:FeedBackView/>
        </Border>
    </Canvas>
</UserControl>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...