I have come across a strange problem.
Basically my app has a primary and a secondary window, the latter is shown on the second monitor. The secondary window has a marquee text animation going 24/7. For the secondary window, I had created a seperate thread with its own Dispatcher, so that the primary window's UI thread could not affect it.
Now I found out, that whenever I moved a modal window on the primary window with the mouse, the movement was sluggish and the marquee text animation became jerky. So I figure, that despite the separtae UI threads, the rendering thread is still the same for the entire process.
My next step was to move the second window to it's very own executable (a seperate Visual Studio project). But even with both windows living in their own processes, still the marque text animation becomes jerky when I move a modal window around in the primary window?!?
How can one application affect another application's rendering so drasticaly?
How to overcome this issue?
I'm using Win 7 x64, Core i5, nVidia GTX 670, .NET 4.5.1.
Edit:
I tried creating a seperate application with Windows Forms, that had a single Label control moving like a marquee, albeit with a regular timer (interval 15ms).
In my main WPF application I launched the primary window without the secondary window and still, moving a modal window inside the primary window causes the marquee in WinForm app to lag and become jerky :S
Related
I created WPF application which allows user to interact with itself using touch. Unfortunately touch is working very bad when several instances of the same application are open.
I will try to describe the behaviour that I am facing:
Open two windows and place them right next to each other.
Touch left window with your finger and do not release it.
Any attempts to interact with the second window using touch will fail.
I have some experience of developing touch applications using WinFroms. And I never had such problems before. So I performed the described above trick with two WinForms applications and they are working just like they should - first window (with finger not released) keeps the focus but second window still allows user to perform clicks on its surface.
I also tried mixed combination - when WPF window is focused, WinFroms window still is touchable. But not the other way around - when WinForms window is focused, WPF window won't respond.
Is there anything that can be done to change described behaviour of the WPF windows?
I created a WPF application that opens a second window with a window style of none. I have a thread that updates data on the chromeless window and I handle the left button down by calling DragMove to allow the window to be moved around. One monitor has 150% font scaling while the other has 200%.
If I drag the chromeless window to my second monitor, the size changes to be bigger or smaller and the updates from the background thread no longer update the UI. If I drag it back to the original monitor, the size restores and the updates resume.
If I change the style to a ToolWindow, everything works correctly; the size changes while the window is split between the monitors but corrects once moved completely and the UI updates continue. There is apparently something going on relative to moving a window around between monitors when it has a titlebar versus when it doesn't have one.
I have also noticed that without a titlebar, if after moving the window to the new monitor, I shake it causing the other windows to minimize, the window will then resize and updates will resume.
Has anyone seen this or know what I might try? If I can't find a fix then I assume I have to resort to some p-invoke magic to hide the titlebar of the tool window.
I have a problem that appears to be new to Windows 10.
I want to create a form that is visible to the user, but with no task bar icon and that does not appear in Alt+Tab.
This is perfectly doable if one is happy to sacrifice the normal styling of a window by following the accepted solutions here for either WPF or Windows Forms.
The general advice for both WPF and Windows Forms is:
Set ShowInTaskbar to false
Enable the ToolWindow styling (either through setting the border style in WinForms or the WindowStyle in WPF)
However, this has a new, practical problem in Windows 10 when using Virtual Desktops: the moment you do the above, the WPF or WinForms window will appear in every virtual desktop. See my example application with a red background:
This affects both the Task View switching screen and the actual desktop itself. No matter where you go, the form is there!
Is there any way to show a form - or even just a bitmap - on Windows without anything appearing in the taskbar, without anything appearing in Alt+Tab and without duplicating the window on every virtual desktop?
I have spent two days researching every possible option, trying every example online, reading MSDN documentation on window styles etc. but all resort to the same method, either through P/Invoke calls or directly, but either way the result is the same.
I have ubuntu 12.04 and mono 2.10.8.1 in my Linux PC.
I have one .NET application which continuously capturing image from camera connected in my development board.
It is working fine without any issue if i don't move my GUI windows which is continuously capturing image. But when i moves the tab to another window and get back to mono GUI window at that time GUI can not be refreshed and doesn't display live image from camera.
Also, I have also put one panel in which some data like frames and seconds are also going to displayed fine when application is running properly without moving tab to another window. But when i moved the tab into another window at that time same issue caused here that frames are also not going to refreshed in to that panel.
SO, does any one have idea about what is happening in this condition?
Is there any limitation about mono to refresh GUI window or something else?
Please let me know if any one have update as soon as possible.
I am using WPF and Directshowlib to render video to a HWndHost object. I'm having two problems with this, probably related.
If I start up my application and then switch to another app running fullscreen, e.g. World of Warcraft, the application returns an error when calling IVMRFilterConfig::SetRenderingMode(VMRMode.Windowless);:
0x887600E1, DDERR_NOEXCLUSIVEMODE, Operation requires the application to have exclusive mode but the application does not have exclusive mode.
In other circumstances, when the video window is fine and video playing back, if I cause a UAC Dialog by, for example, starting another application as Administrator or if I lock the screen I also lose the playback window. My video rendering window goes grey and video playback just stops (I get no media ended events any more). I get no error, just a grey rendering window.
What can I do to ensure I get and keep a video window in both these circumstances? Why am I losing the video window anyway?
Thanks!