WindowChrome
类?我有这个:
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="{x:Static SystemParameters.CaptionHeight}" ResizeBorderThickness="{x:Static SystemParameters.WindowResizeBorderThickness}" />
</WindowChrome.WindowChrome>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="0"
Grid.Column="0"
FontSize="32"
Text="SOME UPPER CASE TEXT THAT WILL NEVER BE DISPLAYED" />
</Grid>
在我的MvxWindow
内,并且WindowStyle
设置为none
。
问题是MvxWindow
似乎什么都没显示。这意味着我也无法创建需要的按钮。我不知道 MvvmCross 是否希望每个UI元素都成为View
的一部分,否则还会发生什么。调整大小甚至右键单击不可见的边框都可以。有什么方法可以不必在WindowChrome
内重建整个View
功能吗?
答案 0 :(得分:0)
我会自己回答;
尽管使用 MvvmCross 创建自定义WindowChrome
几乎没有什么区别,但我会继续提出这个问题,希望对其他人有所帮助。
实际上,根本无法在MvxWindow
中显示UI元素。只需在View
中创建UI,然后为所需的每个元素将WindowChrome.IsHitTestVisibleInChrome
属性设置为true
。
在Window
或View
中执行此操作基本上没有区别。您只需注意CaptionHeight
,因为WindowChrome
和UI现在处于两个不同的脚本中。
看起来可能像这样:
在您的MvxWindow内部:
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight="{x:Static SystemParameters.CaptionHeight}" ResizeBorderThickness="{x:Static SystemParameters.WindowResizeBorderThickness}" />
</WindowChrome.WindowChrome>
在该窗口显示的视图内:
<Menu Height="{x:Static SystemParameters.WindowCaptionHeight}">
<MenuItem Header="_Exit" WindowChrome.IsHitTestVisibleInChrome="True" />
</Menu>