66 lines
2.3 KiB
C#
66 lines
2.3 KiB
C#
// Copyright (c) 2017 schick Informatik
|
|
// Description: Dialog Basisklasse analog EditWindowBase. Hier allerdings mit optionalem "Refresh" Knopf und
|
|
// "Close" statt "OK" und "Cancel"
|
|
|
|
|
|
using System;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.ComponentModel;
|
|
using ENI2.Util;
|
|
|
|
namespace ENI2.Controls
|
|
{
|
|
|
|
[TemplatePart(Name = "buttonRefresh", Type = typeof(Button))]
|
|
[TemplatePart(Name = "buttonClose", Type = typeof(Button))]
|
|
public class StatusWindowBase : Window
|
|
{
|
|
|
|
public event Action CloseClicked;
|
|
public event Action RefreshClicked;
|
|
|
|
static StatusWindowBase()
|
|
{
|
|
DefaultStyleKeyProperty.OverrideMetadata(typeof(StatusWindowBase), new FrameworkPropertyMetadata(typeof(StatusWindowBase)));
|
|
}
|
|
|
|
public StatusWindowBase()
|
|
{
|
|
Loaded += (_, __) =>
|
|
{
|
|
var closeButton = (Button)Template.FindName("buttonClose", this);
|
|
var refreshButton = (Button)Template.FindName("buttonRefresh", this);
|
|
|
|
closeButton.Click += (s, e) => { if (this.IsModal()) DialogResult = true; CloseClicked?.Invoke(); this.Close(); };
|
|
refreshButton.Click += (s, e) => { RefreshClicked?.Invoke(); };
|
|
|
|
};
|
|
}
|
|
|
|
public bool RefreshVisible
|
|
{
|
|
get { var refreshButton = (Button)Template.FindName("buttonRefresh", this); return refreshButton.Visibility == Visibility.Visible; }
|
|
set { var refreshButton = (Button)Template.FindName("buttonRefresh", this); refreshButton.Visibility = value ? Visibility.Visible : Visibility.Hidden; }
|
|
}
|
|
|
|
protected override void OnSourceInitialized(EventArgs e)
|
|
{
|
|
base.OnSourceInitialized(e);
|
|
// this.SetPlacement(..)
|
|
}
|
|
|
|
public void BringUp()
|
|
{
|
|
if (!IsVisible) this.Show();
|
|
if (WindowState == WindowState.Minimized)
|
|
WindowState = WindowState.Normal;
|
|
Activate();
|
|
Topmost = true; // k.a. ob dieser grauenhafte Hack notwendig ist..
|
|
Topmost = false;
|
|
System.Diagnostics.Trace.WriteLine("XXX");
|
|
}
|
|
|
|
}
|
|
}
|