本文整理汇总了C#中System.Windows.Window.GetScreen方法的典型用法代码示例。如果您正苦于以下问题:C# Window.GetScreen方法的具体用法?C# Window.GetScreen怎么用?C# Window.GetScreen使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Window
的用法示例。
在下文中一共展示了Window.GetScreen方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnLoaded
private void OnLoaded(object sender, RoutedEventArgs e)
{
//Get references to window, screen, toastNotification and mainViewModel
window = Window.GetWindow(this);
screen = window.GetScreen();
toastNotification = VisualAndLogicalTreeHelper.FindLogicalChildren<ToastNotification>(this).First();
var mainViewModel = DataContext as MainViewModel;
//Handle ToastNotification event
mainViewModel.ToastNotification += (o, args) =>
{
SetSizeAndPosition();
Title = args.Title;
Content = args.Content;
NotificationType = args.NotificationType;
Action closePopup = () =>
{
if (IsOpen)
{
IsOpen = false;
if (args.Callback != null)
{
args.Callback();
}
}
};
AnimateTarget(args.Content, toastNotification, closePopup);
IsOpen = true;
};
}
示例2: OnLoaded
private void OnLoaded(object sender, RoutedEventArgs e)
{
//Get references to window, screen and mainViewModel
window = Window.GetWindow(this);
screen = window.GetScreen();
var mainViewModel = DataContext as MainViewModel;
//Listen for MagnifyPoint changes
mainViewModel.OnPropertyChanges(vm => vm.MagnifyAtPoint).Subscribe(sourcePoint =>
{
if (sourcePoint != null)
{
SetSizeAndPosition();
DisplayScaledScreenshot(sourcePoint.Value);
EventHandler<Point> pointSelectionHandler = null;
pointSelectionHandler = (pointSelectionSender, point) =>
{
mainViewModel.PointSelection -= pointSelectionHandler; //Only react to one PointSelection event
Point? destinationPoint = TranslateMagnifiedSelectionPoint(point);
IsOpen = false; //Close popup before clicking - destination point may be under the magnified image
if (mainViewModel.MagnifiedPointSelectionAction != null)
{
mainViewModel.MagnifiedPointSelectionAction(destinationPoint);
}
};
mainViewModel.PointSelection += pointSelectionHandler;
IsOpen = true;
}
});
//Subscribe to window location changes and re-evaluate the current screen and current position
Observable.FromEventPattern<EventHandler, EventArgs>
(h => window.LocationChanged += h,
h => window.LocationChanged -= h)
.Throttle(TimeSpan.FromSeconds(0.1))
.ObserveOnDispatcher()
.Subscribe(_ =>
{
Log.Debug("Window's LocationChanged event detected.");
screen = window.GetScreen();
});
}
示例3: WindowManipulationService
internal WindowManipulationService(
Window window,
Func<double> getOpacity,
Func<WindowStates> getWindowState,
Func<WindowStates> getPreviousWindowState,
Func<Rect> getFloatingSizeAndPosition,
Func<DockEdges> getDockPosition,
Func<DockSizes> getDockSize,
Func<double> getFullDockThicknessAsPercentageOfScreen,
Func<double> getCollapsedDockThicknessAsPercentageOfFullDockThickness,
Func<MinimisedEdges> getMinimisedPosition,
Action<double> saveOpacity,
Action<WindowStates> saveWindowState,
Action<WindowStates> savePreviousWindowState,
Action<Rect> saveFloatingSizeAndPosition,
Action<DockEdges> saveDockPosition,
Action<DockSizes> saveDockSize,
Action<double> saveFullDockThicknessAsPercentageOfScreen,
Action<double> saveCollapsedDockThicknessAsPercentageOfFullDockThickness)
{
this.window = window;
this.getOpacity = getOpacity;
this.getWindowState = getWindowState;
this.getPreviousWindowState = getPreviousWindowState;
this.getDockPosition = getDockPosition;
this.getDockSize = getDockSize;
this.getFullDockThicknessAsPercentageOfScreen = getFullDockThicknessAsPercentageOfScreen;
this.getCollapsedDockThicknessAsPercentageOfFullDockThickness = getCollapsedDockThicknessAsPercentageOfFullDockThickness;
this.getMinimisedPosition = getMinimisedPosition;
this.getFloatingSizeAndPosition = getFloatingSizeAndPosition;
this.saveOpacity = saveOpacity;
this.saveWindowState = saveWindowState;
this.savePreviousWindowState = savePreviousWindowState;
this.saveFloatingSizeAndPosition = saveFloatingSizeAndPosition;
this.saveDockPosition = saveDockPosition;
this.saveDockSize = saveDockSize;
this.saveFullDockThicknessAsPercentageOfScreen = saveFullDockThicknessAsPercentageOfScreen;
this.saveCollapsedDockThicknessAsPercentageOfFullDockThickness = saveCollapsedDockThicknessAsPercentageOfFullDockThickness;
windowHandle = new WindowInteropHelper(window).EnsureHandle();
screen = window.GetScreen();
screenBoundsInPx = new Rect(screen.Bounds.Left, screen.Bounds.Top, screen.Bounds.Width, screen.Bounds.Height);
var screenBoundsTopLeftInDp = window.GetTransformFromDevice().Transform(screenBoundsInPx.TopLeft);
var screenBoundsBottomRightInDp = window.GetTransformFromDevice().Transform(screenBoundsInPx.BottomRight);
screenBoundsInDp = new Rect(screenBoundsTopLeftInDp.X, screenBoundsTopLeftInDp.Y,
screenBoundsBottomRightInDp.X - screenBoundsTopLeftInDp.X,
screenBoundsBottomRightInDp.Y - screenBoundsTopLeftInDp.Y);
CoerceSavedStateAndApply();
window.Closed += (_, __) => UnRegisterAppBar();
}
示例4: OnLoaded
private void OnLoaded(object sender, RoutedEventArgs e)
{
//Apply and subscribe to cursor height setting changes
Action applyCursorHeight = () =>
{
var cursorHeightInPx = Settings.Default.CursorHeightInPixels / Graphics.DipScalingFactorY;
MaxHeight = MinHeight = Height = cursorHeightInPx;
CalculatePosition();
};
Settings.Default.OnPropertyChanges(s => s.CursorHeightInPixels).Subscribe(_ => applyCursorHeight());
applyCursorHeight();
//Apply and subscribe to cursor width setting changes
Action applyCursorWidth = () =>
{
var cursorWidthInPx = Settings.Default.CursorWidthInPixels / Graphics.DipScalingFactorX;
MaxWidth = MinWidth = Width = cursorWidthInPx;
CalculatePosition();
};
Settings.Default.OnPropertyChanges(s => s.CursorWidthInPixels).Subscribe(_ => applyCursorWidth());
applyCursorWidth();
//Get references to window, screen and mainViewModel
window = Window.GetWindow(this);
Screen = window.GetScreen();
var mainViewModel = DataContext as MainViewModel;
//IsOpen
Action<bool> calculateIsOpen = showCursor => IsOpen = showCursor;
mainViewModel.OnPropertyChanges(vm => vm.ShowCursor).Subscribe(calculateIsOpen);
calculateIsOpen(mainViewModel.ShowCursor);
//Calculate position based on CurrentPositionPoint
mainViewModel.OnPropertyChanges(vm => vm.CurrentPositionPoint)
.Where(cpp => cpp != null && SelectionProgress == 0) //Only set current Point if we are not within a selection/fixation
.Subscribe(cpp => Point = cpp.Value);
//Calculate selection progress and position based on PointSelectionProgress
mainViewModel.OnPropertyChanges(vm => vm.PointSelectionProgress)
.Subscribe(psp =>
{
if (psp == null)
{
//Selection/fixation not in progress
SelectionProgress = 0;
}
else
{
//Selection/fixation in progress
Point = psp.Item1;
SelectionProgress = psp.Item2;
}
});
SelectionProgress = mainViewModel.PointSelectionProgress != null
? mainViewModel.PointSelectionProgress.Item2
: 0;
//Subscribe to window location changes and re-evaluate the current screen and current position
Observable.FromEventPattern<EventHandler, EventArgs>
(h => window.LocationChanged += h,
h => window.LocationChanged -= h)
.Throttle(TimeSpan.FromSeconds(0.1))
.ObserveOnDispatcher()
.Subscribe(_ =>
{
Log.Debug("Window's LocationChanged event detected.");
Screen = window.GetScreen();
});
}