How does one create a desktop application for Windows 10 that is always on the Desktop?
Like Widgets behaved. That is, having "always on top" when you go to "Show desktop" but not on top of other windows all the time.
So the application behaves like a desktop background if that makes sense.
Here's how you could achieve it
Learn how to use WinForms or UWP so that you can create the different widgets with a user-friendly UI. Microsoft has an additional tool called Microsoft Blend, you can create good user interfaces with it.
Read about C# and how it works. You can program the functionality to make the Widgets stay on your desktop and not disappear when clicking the bar on the bottom right of your taskbar.
You might need to google a lot of things until you are ready to do it.
Look at examples
WinWidgets is an open-source widget project hosted on GitHub by me. You can clone the repository and take a look at how it works.
It covers your requirements and I'm sure you can learn how to do it on your own if you give it a shot.
Related
I'm developing a Windows 10 Universal app (UWP).
Is it possible to set application as TopMost (always on top)? Like WPF or Winforms (TopMost property).
Thanks
A feature called CompactOverlay mode was added in the Creators Update that supports this type of functionality. When an app window enters compact overlay mode it’ll be shown above other windows so it won’t get blocked. This allows users to continue to keep an eye on your app's content even when they are working with something else. The canonical example of an app taking advantage of this feature is a media player or a video chat app.
A blog post describing the feature can be found here
https://blogs.msdn.microsoft.com/universal-windows-app-model/2017/02/11/compactoverlay-mode-aka-picture-in-picture/
Short answer is no, there is no way as of today to make the application modal.
There is a petition going around asking for this functionality, which was requested last December but given the amount of votes it got (35 at the time this answer was written), it doesn't look like it will be taken into consideration anytime soon.
As mentioned in the comments, this functionality would be PC only so even if it was added, my assumption would be that it wouldn't work outside of the PC mode (so no tablet, mobile or surface family device support).
It's not possible UWP apps have some restrictions compared with WPF of Win32 apps(classic apps).
With uwp apps you need enable some capabilities to do something special in your app as you can see in the link uwp apps need ask for permission or they can't access or modify files directly.
https://msdn.microsoft.com/en-us/library/windows/apps/mt270968.aspx
Best Regards
I am doing a desktop application for calendars,sticky notes,diary,todolist,reminders and sending and receiving e-mail. I want to make a widget for all this.Wiget should also display messages if new mail is received. but i dont know from where to start making a widget.let me know is there are some controls in visual studio to make widgets or not.From where is should start.
You're looking for WPF. It's a steep learning curve, but you'll be able to virtually make any app you want. It supports real transparency, you can design the app the way you want without borders. You're looking for Window.WindowStyle = WindowStyle.None. Start from here.
Note that it won't be a 'widget' as the clock widget in Windows 7 for example. You'll make a normal desktop app (.exe) but with special functionality.
Bottom line, you can do that (and more) in WPF but you'll want to be comfortable around it first.
Ok, I have a question to which, despite my best efforts, I have not been able to solve. I searched the internet, and this is one of those that is particularly difficult to search for, but it seems that no user of Windows 8.1 nor any developers developing for Windows 8.1 has posted to any website asking how to do this (I could be wrong, of course).
What I am trying to do is make a Windows Store app targeting Windows 8.1, that takes advantage of multiple Windows. To see what I mean, open up metro ie, right click on a tab, and click "open in new window." This is also in the mail app, where you can open a single message in another window, which behaves like a separate app, and can be snapped like so. It's a new feature of the Windows 8.1 OS.
But I can't for the life of me figure out how to do it in C# and XAML. Does anyone know how? Thanks.
Alex
There are new APIs in Windows.UI.ViewManagement, namely the ApplicationViewSwitcher and ProjectionManager classes. The former is for working with multiple independent views that the user can arrange side by side on whatever monitors they have, which is what IE and Mail use; the latter is for working with multiple monitors.
See the Application Views sample along with the Projection sample for working both scenarios in code.
Might be bit late with my answer, nevertheless I had your similar apprehensions about the "Dismal Support Refs" for this subject, when I first began searching the topic. However I have been able to overcome this and use the feature in my apps. There are some good refs available; The Windows Dev Centre has a Quickstart ie "Quiskstart Creating Multiple Windows", a Good guide is the "MultipleViews" Sample, With the following providing additional support.
1) "Be two places at once using multiple windows" at
https://blogs.windows.com/buildingapps/2014/01/09/be-two-places-at-once-using-multiple-windows/#pBHiQtDSPFrCA7Gv.97
2) "MultipleViews for Windows 8.1 apps" (parts 1-3)
http://www.kraigbrockschmidt.com/2013/11/21/multiple-views-creating-view/
BQ at WATERVIEW
I am using Windows Desktop Sharing API to write a desktop sharing application.
The ultimate goal of mine is to share the complete desktop except few windows. I am able to get the windows from ApplicationFilter.Windows and also able to make the Shared property to false for the window that I don't want to share on the viewer end. But the problem is that it turns the non-shared windows to black rectangle on the other end. How can I make it completely transparent on viewer end?
Fahim
While I can't help with your API, I can recommend that you try Mikogo if you are looking for an easy way to desktop share and hide certain applications. Our Application Selection feature allows you to easily select which applications other viewers can see - if you prefer to hide an application it will show up as a blank window. Try it out here and let me know what you think - http://www.mikogo.com.
Thanks!
Spencer Dunfee
Mikogo Team
sdunfee#mikogo.com
I want to write a desktop gadget that will group icons on my desktop (using c# & WPF).
It will be a docked window that I can drag icons to it and they will stay their. Also there can be couple of this windows.
Where do I begin?
**I saw all the post here about it but I got lost. Please direct me to examples and explanation pages.
To expand on cevik's answer:
You cannot create WPF applications as gadgets BUT you have two options (which aren't as bad as you'd expect).
The reason is that widgets are composed mainly of web pages (HTML) and not executable (*.exe).
The problem of course is that WPF will only work with & produce executables.
First option - Windows API:
When I said you can't what I really meant is you can't use the Windows Vista/7 gadget platform to make your widgets.
However, you can always achieve a similar effect by using the Windows API.
The Windows API will let you do stuff to windows such as making them always on the background of other programs, which sounds to me like ~80% there (The rest would be stuff like making sure your window doesn't get re-sized or minimized, etc.).
Just as a note, the function you'd be looking for to make the window behind all other windows would be SetWindowPos (specifically the second parameter).
However make sure there isn't a library which already implements these stuff because it can be rather difficult (and consist of A LOT of surprises).
Second option - Silverlight
silverlight can be perceived as WPF for the web.
That obviously solves our problem.
However there is a cost to it, as expected.
Silverlight doesn't have all the features WPF has (possibly not all of the .NET framework as-well, not sure about that as I'm not really using it).
However it should be more than enough to get you by so you should definitely check it out.
Once you have your Silverlight application (and webpage) you'll have to create a manifest & install the gadget to your desktop. See here how to do so.
Maybe this will help you.
Template to easily get started on developing a Sideber Gadget using Silverlight 3.0 or 4.0 controls in C#.