ポップアップコントロールを開くMouseEnter
イベントで簡単なボーダーコントロールがあります。ポップアップは境界線よりも大きく、境界の境界を超えています。ポップアップにもいくつかのボタンとテキストブロックがあるので、私はそれを何らかのコントロールをする必要があります。今、私が得たいもの:マウスがボーダーに入る - ポップアップが表示されます。マウスが境界線とポップアップを離れると、ポップアップが閉じます。したがって、マウスが境界を越えていないのにポップアップの上にあるときは、ポップアップは開いたままです。私はクリックで閉じたくない。手伝って頂けますか? WPFのポップアップコントロールは私にとっては紛らわしいものです。WPFポップアップ - マウスでのみコントロールとポップアップを残す
編集: 右、コード:
<Window x:Class="Sandbox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Sandbox"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid Margin="20">
<Popup PopupAnimation="Fade" Placement="Top" PlacementTarget="{Binding ElementName=OpenPopupBorder}" AllowsTransparency="True" StaysOpen="True" x:Name="DeviceStatusSnippetPopup">
<Border Background="White" Padding="5" BorderBrush="Black" BorderThickness="1">
<Grid>
<StackPanel Orientation="Vertical">
<TextBlock HorizontalAlignment="Center" Text="Device status snippet" Margin="0 10 0 10"/>
<StackPanel Orientation="Horizontal">
<Button Style="{StaticResource btn-default}" Margin="0 0 5 0" Content="Go to device"/>
<Button Style="{StaticResource btn-default}" Content="Refresh device"/>
</StackPanel>
</StackPanel>
</Grid>
</Border>
</Popup>
<Border x:Name="OpenPopupBorder" Width="90" Height="30" Background="LightGray" MouseEnter="Border_MouseEnter"/>
</Grid>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Border_MouseEnter(object sender, MouseEventArgs e)
{
DeviceStatusSnippetPopup.IsOpen = true;
}
}
ここでコードを共有しますか? – MikkaRin
'IsMouseOver == true'、setter' popup.IsOpen = true'、 'IsMouseOver == false' =>' popup.IsOpen = false'で 'IsMouseOver'プロパティの' popup'のトリガを設定するだけです。 。それは本当に簡単です。 – Shakra