ButchersBoy / Dragablz

Dragable and tearable tab control for WPF
http://dragablz.net
MIT License
2.17k stars 320 forks source link

Limit top border for mdi #40

Open QuantumDeveloper opened 8 years ago

QuantumDeveloper commented 8 years ago

Hi, I see that dragablz support MDI and found one issue related with that Mdi window can be dragged out of the top boder (higher than tabs) and go under window buttons like (maximize, cloze, etc) Could be also problem when usin gwindows commands with MA.Metro.

Could you please limit that MDI window not to be possible to drag out from the tabs border?

ButchersBoy commented 8 years ago

OK...the MDI support is a bit unpolished...so any issues you find just keep logging them and I will get to them.

QuantumDeveloper commented 8 years ago

Or it will be even better to limit MDI window with te bounds of the Content control inside tab that it could not overlap tabs.

ButchersBoy commented 8 years ago

I dont want to limit the window to a tab...If you use layouts and split windows then they can start getting small...and things get really complex to manage. It's a design decision to have the windows at Layout (Window) level.

Having said that...you could cheat the system and create 2 Layout controls yourself. But that be at your own risk :)

QuantumDeveloper commented 8 years ago

OK, you know that stuff better than me...

QuantumDeveloper commented 8 years ago

@ButchersBoy returning to our previous conversation... I think you understand me incorrect. I dont want you to limit MDI to a tab, but limit its positioning that it could not overlap tab headers, because if it happens, it make inconveniece to the iser, as he must move mdi window first to have possibility to do something with the tab. One thing I am not sure is that if you make it shared between different tab groups, you will not able to prevent thins...

ButchersBoy commented 8 years ago

Yeah...preventing it in the same "Partition" is almost impossible. But if you wanted to use a Layout just for hosting tool windows, you could just layer it over a tab control....something like this:

<Grid>
  <TabablzControl />
  <Layout Margin="0 20 0 0 Partition="ToolWindowsOnly" />
</Grid>

(And you could nest all that in a different Layout to allow tab splitting)

QuantumDeveloper commented 8 years ago

Unfortunately it is not always possible, because personally in my case I am using windows form to output DirectX rendering and I will have airspace issues (until MS hopefully will upgrade WPF to DX 12 and give us immediate mode rendering control like SwapChainPanel in universal apps). So, my option is to use side panels something like in VS now. Hopefully you will implement them. For me personally this will be cool feature due to my limitations.

ButchersBoy commented 8 years ago

Remind me which Dragablz theme you are using? I think we are almost there. I havent actually tried this, but:

<Layout>
  <Branch>
    <TabablzControl />
  </Branch>
  <Branch>
    <TabablzControl />
  </Branch>
<Layout>

The second tab would have to have it's tab panels on the right. I started some of this work in the MaterialDesign theme but not the other themes.

Also, the vertical dragging (as opposed to horizontal) might need a bit of touching up.

And finally, need a way of keeping the branch open if you tear out the last tab.

ButchersBoy commented 8 years ago

And yeah, it's annoying all the Win2D composition stuff they are doing in UWP...they should bring that to WPF...

ButchersBoy commented 8 years ago

...and man I need more time in my life...if I can do everything I'd like to do to Dragablz, it allows for real powerful Windows apps...

QuantumDeveloper commented 8 years ago

They talk that will update WPF to DX 12, but I dont know when they will pull out finger from their asses and just upgrade at least their renderer. Already a year almost passed from the first time I`ve heared that.

Regarding free time... I am not hurry you up. But your dragablz is quite perspective dockable control for WPF on the whole internet. I think it will the best when you implement all features. And I will wait for it)

QuantumDeveloper commented 8 years ago

By the way. Thanks for your great work!

ButchersBoy commented 8 years ago

:smile: