Suppose I have a TabControl with some TabItems, each tab Item contains a UserControl.
Is there a way to convert the TabItem to a window when its dragged outside the application window and vice versa?
Just like google chrome except that the window will only contain what was inside the TabItem.
Any ideas on how to achieve this?
If you are using an MVVM pattern, you should be able to do this:
When you drag the tab item out of the tab control, send a command to the VM to which creates a new window, passes the original datasource from the view (the tab item) to the window, then remove the tab item from its parent (the tab control) via a command to the parent VM.
Related
For an error validation mechanism, I've to be able to "navigate" in my application to one specific pane.
Currently I've one "SelectedNode" and tries to focus the control that is bound to this property(basically, I've an AttachedProperty to set the IsFocus, based on the name).
My issue is that sometimes this page contains tabs. And it appears that the control cannot be focused if it's hidden(not in the active tab).
Is there a way from an UserControl to go up in its visual tree to "activate" all his parent?
I cannot just bind the "SelectedIndex" of my tabcontrol in the viewModel, for a lot of reasons:
The UserControl that has the tab has one sub user control for each tab, so the usercontrol doesn't know what is in which usercontrol
Putting such things in the ViewModel is wrong, the ViewModel should not have to know that it's displayed in tabs or all in the same pane
Thanks!
In WPF i want to create an custom TabItem which contains other controls.
After creating the TabItem, i want to add it to an TabControl.
The content of the TabItem will be created dynamically.
The TabItem only will be vissible after clicking on a button, and will close after entering the neccesary information.
After closing the tab, there will be no blank space in the TabControl.
I tried with a custum control, an user control and a class which inherits from an TabItem. But none of them does what i want.
Which is the best solution in this case?
You want to set the TabItem content to the UserControl not inherit from TabItem. Also you can bind the TabControl.ItemsSource to a collection of UserControls that would make it dynamic like you want I believe.
I solved my problem.
Instead of crating an usercontrol for the tab, i created an usercontrol with the contents of the tab.
In my case, that's a grid.
After that, i use the customcontrol to fill the tabitem.
I've simply added a control to my form and now I can't even see it on the form. But it is still there. How can I find it?
In situations that it is not possible to simply click on design surface and select your control, you can select your control using either of these options:
Document Outline Window
You can open Document Outline Window using menu View → Other Windows → Document Outline Also using Ctrl+Alt+T shortcut.
The Document Outline is most useful when you need to put design focus on controls that are deeply embedded within other controls, or that might be hard to select using a mouse or the TAB key.
View the logical structure of a Form or a UserControl.
Put user input focus on deeply nested controls that may be hard to select on the Form itself or the UserControl itself.
Move controls from one parent to another parent.
Locate controls that may be visually hidden by other controls.
Propertie Window
You can open Propertie Window using menu View → Properties Window Also using F4 shortcut.
You can select the control form the drop-down which contains all controls.
Or use the Document Outline window. You can also drag your controls here if they were accidentally misplaced or if you want to change the order of the docked controls.
In WPF, since there is no MDI concept, I used a TabControl. But in WinForms with MDI, I could put two MDI Child forms side by side to compare some data. Resizing of the MDI Child is also possible. How can I achieve the same with WPF TabControl. I want the TabPage to undock as we can do in Visual Studio IDE and enable user to resize the child window. I am not permitted to use any third party tools or source code for this task. So can anyone guide me with example if possible?
So far, I have added a TabControl. I am adding/removing Tabs to/from the TabControl through MenuItem click. I have added a ContextMenu to the Tabs with an Undock MenuItem. When this is clicked, I am displaying the same UserControl which I used as the TabPage content, but with a title bar and a close button. Now I am stuck on adding the UserControl back to the tabs group.
We have a composite application with a DockPanelWorkspace as its main user interface area. Above this sits a MenuStrip with a window menu set as its MdiWindowListItem. Unfortunately, as I feared, the window menu isn't populated with the open views.
Is there an equivalent in CAB that will populate a menu with a list of the open views in a workspace? If not, how should I go about implementing that feature?
MdiWindowListItem is automatically populated with items added as MdiChild. You have to develop custom logic for docked window, handling the following .
Adding menu item to the window menu (set as MdiWindowListItem)
Removing the menu item when the related window is closed
EventHandler for selecting the window when the menu is clicked
I am not familiar with DockPanelWorkspace.
So logic of selecting the window has to be sorted.
Changes of DockState like the window changes to MDIChild