Im using a WPF Window in the WindowsStyle='none';
With this I create my own custom window by giving the 'root' grid (the highest in the XAML-tree) a Margin of 20px and a DropShadow. The window itself is transparant, the grid has a white background.
When I set the WindowsStyle.Maximized, I remove the extra Margin and the DropShadow . When I set WindowsStyle.Normal I add the extra Margin and the DropShadow again.
But when I snap my WPF window in Windows 10 to a corner or side of my screen. It snaps but I dont get an Window.StateChanged event.
My question is: Is there anyway to figure out when my Window has snapped in Windows and when it Unsnapped?
Related
I created new .NET WPF desktop application using Visual Studio 2019. The default mainwindow looks like this:
What I want is to hide the icon, which I accomplished by setting next property to Window
WindowStyle="ToolWindow"
It works, but now only Window's top black border is visible. No left, right or bottom are visible as in upper example (with Icon).
How can I add all window borders (visually the same as first example) and keep WindowStyle 'ToolWindow'? I tried adding BorderBrush and BorderThichness, but it's not the same. The result is here:
I have a WPF window and an Image in a grid in the window. I am animating the Image so it moves from out of view (beyond widow location) into the window.
The animation is nice and smooth and everything works but I notice the image is over top of the window border while it is moving. The image at the end of this question is what it looks like.
Why would the image be over top of the window border, and how do I get it to be "under" the border?
Thanks in advance!
Well after a lot of trial and error it seems the problem was the fact I was moving the image in a grid that had no defined width, so the width would expand over the border when moving the image thus extending the "client" area of the window and showing over the window area.
Once I defined a specific width of the grid, everything worked.
In WPF window, I have specified SizeToContent="WidthAndHeight".
I have a number of panels stacked up, of which I change the visibility (to Visible or Collapsed) as required. My window resizes itself according to the panel that I have set visible. No issues here.
My problem is with the resizing, that the window resizes with a jerk to the final size.
I want to animate this such that the resizing is smooth. And i want to do this in my XAML file.
Is there any solution for this???
P.S. - I have not set any Width or Height property in the window and I want to restrict myself from doing that.
I'm editing a WPF Window object in Visual Studio and have a canvas element that stretches outside the boundary of the Window. Visual Studio only gives a zoom in/out feature, but I can't scroll left or right, even though my canvas inside the Window stretches way off the right of the screen. How can I scroll out all that way?
Thanks,
Dave
Your big canvas must be contained in another container with a constrained size. Try to set SizeToContent="WidthAndHeight" on the window.
Using Visual Studio 2008 WinForm designer, I have a container (form, panel, groupbox, whatever) and some controls in it.
The container is set to not automatically resize or dock in any way. When placing a control in the container I can use the snaplines to help in positioning the control.
However, the snaplines does not appear when I resize the container to the edge of the contained controls...
Is there a simple way to have the designer show me the snaplines of the contained controls when resizing the container?
The designer will only show the snap lines when moving a child control within a container. You can demonstrate it by moving a GroupBox around a Form and see that it shows snap lines when the GroupBox gets close to the edge of the Form, but if you were to resize the Form you won't see the snap lines appear.
If you're just looking to get all of the controls to line up in a uniform fashion, I'd suggest switching to SnapToGrid mode and using the grid lines to align your controls. You can set the SnapToGrid mode by going to Tools->Options->Windows Forms Designer->LayoutMode. Open your designer and you should see the grid appear, after that you can line your controls up with the grid.
After setting the layout of the form, you can also set anchoring property to all child controls appropriately, to right and bottom (or top and left), depending on the resizing you are making. Anchor property will hold child controls to same distance from the edges of the container (parent control).
In the WinForms designer, there is no support for snaplines when resizing the container control. The best way to work around this issue is to first size the container to the size you would like to use and then add controls. Optionally, you can change the Margin property of the container so that when moving controls inside the container, they will snap to the margin of the container, keeping it uniform.
Try:
container.AutoSize = true
container.AutoSizeMode = GrowAndShrink
container.Padding.All = 5