Visual Studio 2013 - why is the resolution of my program changing? - winforms

I am creating a program, just for testing purposes, so I can learn to scale applications properly.
I just can't get the resolution to translate well to other devices.
So I'm making the program on a computer, which scaling is set to 100%. When I open the program on my smaller computer, which scaling is set to 150%, the controls gets bigger and the resolution is poor. I've tried all the different AutoScaleModes, even tried setting it to "None", but it did not seem to change a thing.
So is it not the scaling that's my problem? Or is it just Windows that's still a bit buggy with the 150% scale?

Related

Silverlight on Windows 8

I'm running my SL5 application (that has been working well so far) on Windows 8, and it is not going well. I have a background picture which usually does not render correctly, almost everytime I navigate my background (including the controls over it) just goes white till I resize IE, then it re-paints (what makes it stranger is that the parts that goes white is outside of the navigation frame, why is it getting repainted). (Chrome renders fine)
When I run my application out-of-browser my login screen pops up and works correctly but after the login screen closes it looks like the gray background of the login screen remains behind and I cannot click on anything, resizing makes no difference, it looks like every control has been disabled.
I have updated my NVidia Drivers to the latest, don't think its a display driver issue though.
Anyone else had these issues? Anyone else running SL5 fine on windows 8?
(Looks like I'll be downgrading back to windows 7 soon)
Silverlight should run great on any desktop browser in Windows 8, just like it does on Windows 7, Vista, and Mac. The underlying runtime is 100% the same. That does not mean you may not find a glitch with a graphics driver, but it means you shouldn't - and likely won't.
I did want to make a clarifying point, however, that Silverlight is not part of the Modern Internet Explorer (the Metro Internet Explorer). Only a subset of Flash is supported and that is only supported on white-listed sites.
This means Silverlight solutions that you might have expected to run on the Surface RT (running Windows RT - or Windows on Arm) will not run (as there is no SL runtime). And, I think we can all have a collective moan and ask, together, "Why not?" To which there is no acceptable answer.
The theoretical goal, of course, is to write native Windows 8 apps. If you want to write something web based you should write it in HTML5. That's the official word. I think we all know that HTML5 has a ways to go in order to catch Silverlight, but it is what it is. Can't change some things.
I have had no issues with any of my Silverlight 5 apps running on Windows 8 - I focus mainly on line of business apps but have some graphical and otherwise apps that run fine as well.
I'm only marking this as the answer to close the case, what the actual answer was to the problem we will never know. The solution: automatic updates. After much hassles with getting automatic updates to actually go through, my machine is now working well.

WPF rendering freeze

I'm experiencing a GUI freeze problem, related to hard vs. software UI rendering.
The context : 2 WPF apps (.NET 3.5 SP1) running on a dual-display XP Embedded machine (DirectX 9.0c).
At some point, one of these app freezes. But only the rendering : the GUI stays active (message pump is active, the application is responsive), but the rendering is not done.
The freeze can last seconds or forever.
The 2nd app keeps running normally. The bug occurs only in a dual-display configuration, the 2nd app being a kind of catalyst (more memory and CPU usage...)
Using Perforator, I see that Video Memory Usage is continuously going up & down in spikes (cf : screenshot).
During that time, one native thread is consuming 100% of a CPU (the stack-trace involves WPFgfx, DirectX, GDI, and video driver)
Usually, when the app unfreeze, it's fully software rendered (purple tint with Perforator).
Also, de-activating hardware rendering unfreeze the app.
My conclusion, so far, is that I'm facing an out of video memory (as described at point #14 in this post), with an attempt to fallback to software rendering, but there is a loop somewhere trying again in hardware mode.
Am i right ?
Would it be more a WPF problem, or a video driver problem ? or even DirectX ?
Are there some parameters I can tune around this ?
Am i right ? Would it be more a WPF problem, or a video driver problem ? or even DirectX ? Are there some parameters I can tune around this ?
This sounds like a driver issue. I would start with seeing if there are driver updates. The best option might just be to disable hardware acceleration altogether, as WPF (on XP especially) really relies on the graphics drivers.
Visual Studio 2010 sp1 disabled hardware acceleration for itself on XP for exactly this reason...

How can I speed up Visual Studio 2010 text editor render speed?

Visual Studio 2010 moved to using WPF for rendering the editor. This is leading to slowdowns while I am editing code, especially if I'm running something else that uses other video capabilities.
How can I speed this up? A new video card? New drivers? Settings?
What technologies does WPF use to render and what video card would complement it?
WPF uses DirectX for rendering, so a new top of the line video card would certainly help you out here. Any solid ATI or Nvidia card nowadays supports the latest and greatest DirectX.
The answer from #Charlie is absolutely spot on; and I thought about saying this on a comment but then figured I should put it as an answer.
Under certain circumstances (certainly on my desktop at work, which uses a workstation NVidia card), which are listed in the installation issues (connected with Hyper-V in particular), VS2010 fails to enable video acceleration even if it is available.
Open up Tools->Options, and on the very first options panel you'll see a group in the middle 'Visual Experience'. Just make sure that everything is checked in there and that it says 'Visual Studio is currently using hardware-accelerated rendering...'.
I don't think the hardware requirements for VS2010 are particularly heavy - but your card certainly must be DX capable.

Is WPF a safe choice for my application?

I'm maintaing a Windows Forms application which draws map data with overlays. I've been considering a move to WPF for the drawing layer, to take advantage of the graphics card rendering. In the last couple of weeks, however, I've started to have some doubts:
The new release of Evernote uses WPF, and doesn't run on Nvidia Quadro cards.
A WPF transitions demo from WindowsClient.net stopped rendering part-way through the animations on one of our test portables with Intel graphics (and yes, we had the latest Intel drivers).
Stack Overflow questions like this.
With the current Windows Forms codebase I can expect the application to run identically at every installation. WPF is much more dependent on the quality of the graphics card drivers, and I don't have the testing resources for comprehensive coverage.
I'm particularly interested to hear from people who've delivered a WPF application outside their own company or to a mixed population of machines - did hardware and driver specific bugs cause you a significant support burden?
We are facing some issues with the drivers of a specific graphic card vendor. Blue screens, a diagonal pixel displacement and application crashes have been observed. It is possible, however, to turn off the Hardware Acceleration on a per-application basis. Sad but true, this is the current workaround.
As already stated, I hope that the VS2010 release will help to improve the stability. Perhaps one day we'll see lists of WPF related fixes in the release notes of graphic card drivers. Along with the latest fixes for the game engine XYZ.
Our WPF application is running on Windows XP SP2 (minimum) and is ok apart from on some machines, if the application is running and the PC goes into screensave mode it blue screens and crashes the machine. This seems to be graphics card driver version related - some of our users run dual monitors.
We haven't cracked this issue yet.
WPF uses Direct3D for its rendering, falling over to software if necessary. My best guess is that some drivers say that they support something in hardware but really don't handle it properly, and that is when we see these incompatibility issues.
The answer to your question depends on how willing you are to have less compatibility with machines than your current codebase has. If you've ever visited support forums for PC games you see all sorts of threads about graphics problems. As most PC's are going to be more and more compatible with Vista/Win7 and therefore support D3D9/10, the issues should lessen. The real question is if the tradeoff for you is worth it.
My own experience deploying a WPF app, I had issues with the mediaelement not working the same on two very similar PC's. But the video subsystem is a different can of worms anyway. Otherwise it was fine but I wasn't doing anything special graphically, just standard xaml.

VS2010's WPF renders poorly inside a Windows7 VM?

Kevin Hoffman this morning reports that:
When put under a virtual machine
running Windows 7, VS2010 fails to
render things, borders disappear,
windows become unusable and the
experience is downright awful. On the
other hand, when you run VS2010 "bare
metal" with no virtualization between
it and your video card, everything is
beautiful and all works well.
What about a virtual machine would cause VS2010's WPF to render poorly?
WPF renders stuff on a Direct3D surface. It's able to take advantage of hardware acceleration features provided by graphics cards to improve performance. Under VMs, these features might be unavailable.
I haven't tried VS2010 specifically yet, but you may be hitting a known issue with WPF apps in VMs. Try disabling hardware acceleration as described here:
http://msdn.microsoft.com/en-us/library/aa970912.aspx
Our custom WPF app running on a VM had similar performance problems, and that fixed it for us.
As Mehrdad says, Virtual Machines don't really virtualize 3D hardware (there is some work being done in this area by VMWare, but it's only older versions of DirectX I think) and WPF utilizes the GPU to render more efficiently, thus it has to use software to render in a virtual machine and that is significantly slower.
If you have a multi-core machine, and you're using a Virtual Machine manager that supports giving VM's multiple cores, then you might consider adding more cores to the VM to better utilize CPU resources, or use Kevin's Registry changes.
VS2010 isn't a finished product and it ties in quite heavily with various elements of the system's native GUI interfaces (which, in Windows 7, also not a finished product, these are not fully cultivated). It's not entirely surprising that two betas running in a virtualised environment would have issues. As stated, this is liable to be an Aero issue, which ties in heavily with DirectX's hardware rendering. These issues might not occur under classic assuming Win7 has that.
I'm using Windows 7 + VS 2010 + WPF and everything is fine, however I'm using VMWare Fusion with hardware acceleration on.

Resources