cefsharp dropdowns in a TopMost container - winforms

I'm using cefsharp for Windows forms version 49.0.1 and I see that it has an issue where drop down lists do not work if the window that wraps the component has its property TopMost = true.
Is there a workaround or something I can do to make the drop downs work (while keeping the TopMost property)?

Related

Keyboard focus problems

I am needing to use the DotNetBrowserControl inside of another application (I am an add-in in the application). The application is written in WPF and has some WinForms components.
When I try to use the WPFBrowserView in the app I can never get focus to go into the Browser Window at all (even when clicking on a the google search box for example).
When I try to use the WinformsBrowserView inside of a WindowsFormsHost control I am able to get focus into the google search box by clicking on it. However once I click focus out of the browser control (to a WPF textbox for example) I can never get Keyboard focus back into the browser (even when clicking on a textbox in the browser).
It seams I am closest on getting the WInformsBrowserView working. Does anyone have any advice on how to force focus into the browser window? Even if I could programmatically force this to happen it would be a huge help.
We have implemented force focus feature for DotNetBrowser, but it is not yet present in the current version. We plan to add it to the next version of DotNetBrowser. If you need a build with this feature present, please get in touch with us via DotNetBrowser support email, and we will provide you with a preview build.

WPF Standalone Application showing different views

I am building a WPF Standalone application. It consists of a menu on the left of the window and when a menu option is selected I want a page showing content related to the option selected shown on the right hand side of the window.
If a user selects a different menu option then the new view will be loaded.
If the user selects a previously selected menu option then that view will be shown but it will have held it's state. So if has a result set for customers with "bob" as a first name then when I view it again the result set will still be showing.
My questions is what is the best way to implement this.
Pages are not suitable as the app will not be viewed in a browser.
I could not see a Master Page -> content layout approach.
So is it a case of loading custom controls?
I am using the MVVM pattern.
Any help would be appreciated.
You could use TabControl with TabStripPlacement value set to "Left" - is that what you are looking for?
I managed to implement something similar detailed here using "workspaces". http://msdn.microsoft.com/en-us/magazine/dd419663.aspx

Making a Wizard in Silverlight + Xaml

I have a Silverlight application and I am trying to make each step of a wizard in XAML files, instead of hard-coded C#.
The problem is that I don't understand how I am going to switch between them after click on next button of each screen.
What is the best way to do this? I saw some tutorials on the internet about XAML dynamically loaded but none of them seem to work with me :/
Use a ChildWindow as your parent window. Then create multiple UserControls which will be framed in the content of the parent window. In the code-behind of the parent window, load the user controls into a list and set the visibility to 'Collapsed' for all of them but the first. When the user presses the Next/Prev buttons, pull the appropriate UserControl from the list (keep track of the current index) and make it 'Visible' while making the current control 'Collapsed'.
All of your navigation code will be in the parent window, but the parent window won't be concerned about the content of the wizard steps itself.
Each UserControl can be coded in XAML as a separate control so you still maintain a separation of the control from your wizards navigation logic.
You can then create a class type that will hold all of the options for the various wizard controls. Pass a reference to an object instance to each of the controls for them to update. When you get to the end of the wizard, your option object should maintain the state of all the wizard steps and the parent window can return that to the application.
I would suggest looking into the Silverlight Navigation Framework. It allows you to use "urls" to navigate between "pages" (which are your XAML user controls). It also also users to use the back and forth buttons in the browser, which may or may not be something you want to allow.
There is a VS 2010 template when you choose New Project, Silverlight, "Silverlight Navigation Application" that will help get you started.

How can I load a WPF (xaml) window inside of another WPF windows in a Panel?

Is this possible?
I used a Frame control and:
show(ex:showwindow.xaml)
But I get this error:
root element is not valid for navigation
sure you can navigate (show) a window by using:
YourFrame.Navigate(YourWindow);
However I don't like much this multi-window approach, better create some user controls for segmenting your application.
It is more common to use the Page class with the Frame control. Windows, in WPF are the top level items, with their own titlebar, chrome etc. Also, the Page can tap into the NavigationService provide by the framework.
more info about Navigation from Microsoft

Stop Dragging from a WPF WebBrowser control

I have a WPF application which contains a WebBrowser control.
Currently, the user can select something within the WebBrowser and can copy the content by dragging it out to another application and dropping it there.
I'd like to be able to stop the user doing this. I'd assumed that there would be a "DragStart" event that I could capture and cancel - but I haven't been able to find something so simple.
Is it possible to capture the start of drag event and cancel it?
Is there a better way to achieve this?
You can implement IDocHostUIHandler::FilterDataObject and filter out common clipboard formats
You don't get access the WPF browser's native interface until the document is ready. Not sure if it would work with the WPF browser class. There is also a bug in Windows Forms to prevent you from customizing its implementation of IDocHostUIHandler.
You can try some wrapper class of the webbrowser ActiveX, such as the one described at http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

Resources