Search
 
SCRIPT & CODE EXAMPLE
 

CSHARP

how to close a popup wpf c# on click event

<Popup local:ClosePopupBehavior.PopupContainer="{Binding ElementName=Window}"
        IsOpen="{Binding ElementName=ToggleButton1,
                         Path=IsChecked}"
        PlacementTarget="{Binding ElementName=ToggleButton1}">
     <Border Width="200"
             Height="100"
             Background="LightBlue" />
 </Popup>
Comment

how to close a popup wpf c# on click event

public class InverseBooleanConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return !((bool)value);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return !((bool)value);
    }
}
Comment

how to close a popup wpf c# on click event

IsHitTestVisible="{Binding IsOpen, ElementName=MyPopup, Mode=OneWay, Converter={StaticResource InverseBooleanConverter}}"
Comment

how to close a popup wpf c# on click event

public static class ClosePopupBehavior
{
    public static ContentControl GetPopupContainer(DependencyObject obj)
    {
        return (ContentControl)obj.GetValue(PopupContainerProperty);
    }

    public static void SetPopupContainer(DependencyObject obj, ContentControl value)
    {
        obj.SetValue(PopupContainerProperty, value);
    }

    public static readonly DependencyProperty PopupContainerProperty =
        DependencyProperty.RegisterAttached("PopupContainer",
            typeof(ContentControl), typeof(ClosePopupBehavior)
        , new PropertyMetadata(OnPopupContainerChanged));

    private static void OnPopupContainerChanged(DependencyObject d
        , DependencyPropertyChangedEventArgs e)
    {
        var popup = (Popup)d;
        var contentControl = e.NewValue as ContentControl;

        popup.LostFocus += (sender, args) =>
        {
            var popup1 = (Popup)sender;
            popup.IsOpen = false;
            if (contentControl != null)
                contentControl.PreviewMouseDown -= ContainerOnPreviewMouseDown;
        };
        popup.Opened += (sender, args) =>
        {
            var popup1 = (Popup)sender;
            popup.Focus();
            SetWindowPopup(contentControl, popup1);
            contentControl.PreviewMouseDown -= ContainerOnPreviewMouseDown;
            contentControl.PreviewMouseDown += ContainerOnPreviewMouseDown;
        };
        popup.PreviewMouseUp += (sender, args) =>
        {
            popup.IsOpen = false;
            if (contentControl != null)
                contentControl.PreviewMouseDown -= ContainerOnPreviewMouseDown;
        };
        popup.MouseLeave += (sender, args) =>
        {
            popup.IsOpen = false;
            if (contentControl != null)
                contentControl.PreviewMouseDown -= ContainerOnPreviewMouseDown;
        };
        popup.Unloaded += (sender, args) =>
        {
            popup.IsOpen = false;
            if (contentControl != null)
                contentControl.PreviewMouseDown -= ContainerOnPreviewMouseDown;
        };
    }

    //This is really to handle touch panel, Not sure if it is needed since handle LostFocus.
    //Remove the contentControl stuff if it is not needed
    private static void ContainerOnPreviewMouseDown(object sender
        , MouseButtonEventArgs mouseButtonEventArgs)
    {
        var popup = GetWindowPopup((DependencyObject)sender);
        popup.IsOpen = false;
        ((FrameworkElement)sender).PreviewMouseUp -= ContainerOnPreviewMouseDown;
    }

    private static Popup GetWindowPopup(DependencyObject obj)
    {
        return (Popup)obj.GetValue(WindowPopupProperty);
    }

    private static void SetWindowPopup(DependencyObject obj, Popup value)
    {
        obj.SetValue(WindowPopupProperty, value);
    }

    private static readonly DependencyProperty WindowPopupProperty =
        DependencyProperty.RegisterAttached("WindowPopup",
            typeof(Popup), typeof(ClosePopupBehavior));
}
Comment

PREVIOUS NEXT
Code Example
Csharp :: c# nuint 
Csharp :: wait for threadpool to complete with decrement 
Csharp :: EF will not create columns RULE 
Csharp :: unity editor window mesh field 
Csharp :: displaying list in gameobject Unity 
Csharp :: panning script c# on phone 
Csharp :: method declaration in c# 
Csharp :: c# .net calculate md5 
Csharp :: is odd c# stackoverflow 
Csharp :: calculate 01 with min max value 
Csharp :: player ToJson unity 
Csharp :: create viewport revit api 
Csharp :: c# Isolation Levels 
Csharp :: ef null check 
Csharp :: 2d look at unity 
Csharp :: unity inspector sliders 
Csharp :: dotnet core webapp 
Csharp :: c# loop array backwards 
Csharp :: how to delete file in c# 
Csharp :: c# for loop last iteration 
Csharp :: c# declaration definition 
Csharp :: rb.addforce 3d c# 
Csharp :: project programing languages in codecademy 
Html :: html meta redirect 
Html :: how open link in new tab 
Html :: how to stop download option in video tag of HTML 
Html :: html input float type 
Html :: target _blank 
Html :: How to display Base64 images in HTML? 
Html :: html inbed youtube 
ADD CONTENT
Topic
Content
Source link
Name
6+3 =