我正在爲一個kinect製作各種菜單界面,並且我正在嘗試一個帶menuitem控件的經典菜單;爲了可視化光標,我使用了一個usercontrol handshaped(我需要它,我不能使用自定義光標)。我對兒童菜單項有問題,因爲它們不是主窗口可視化樹的一部分,但我管理它們。如何在C#中的menuItem上使用用戶控件?
我無法修復的唯一問題是,當你打開一個菜單項時,他總是保持在其他界面元素的頂部,所以它也覆蓋了我的手形「遊標」,因爲它不是一個真正的遊標,而是僅僅是一個「可視化器」。
對於如何始終使用我的用戶控件,或者更改menuitem的行爲,您有一些建議嗎?
我添加的圖像顯示效果更好的問題: (http://imgur.com/7XSAglV.jpeg)
這是代碼的摘錄:(該pseudocursor在另一個定義在另一個文件中,並在畫布上的程序添加)
<Window
....
xmlns:local="clr-namespace:ProvaHover"
x:Class= "ProvaHover.MainWindow"
Cursor="None"
Title="MainWindow" WindowStyle = "None" WindowStartupLocation="CenterScreen" SizeToContent="Manual" WindowState="Maximized" HorizontalAlignment="Left" VerticalAlignment="Top" ResizeMode="NoResize" Closed="Window_Closed">
<Grid x:Name="gridParent">
<Grid.RowDefinitions>
<RowDefinition Height="200" Name="row" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Border BorderBrush="#FFA0A0A0" BorderThickness="1">
<Menu IsMainMenu="True" Grid.Row="0" Height="{Binding ElementName=row, Path=Height}" FontSize="140" VerticalAlignment="Top" local:MagneticPropertyHolder.IsMagnetic ="True" Grid.ZIndex ="2">
<MenuItem Header="_File" Name="fileMenu" Background="Transparent" local:MagneticPropertyHolder.IsMagnetic ="True" SubmenuOpened="filemenuitem_SubmenuOpened" Grid.ZIndex="2">
<MenuItem Header="_New... " local:MagneticPropertyHolder.IsMagnetic ="True" Name="newMenu" Loaded="newmenuitem_Loaded" >
<MenuItem Header="_New... " Grid.ZIndex="2" />
<Separator />
</MenuItem>
<MenuItem Header="_Open..." Name="openMenu" local:MagneticPropertyHolder.IsMagnetic ="True" Loaded="openMenu_Loaded" Grid.ZIndex="2" >
<MenuItem Header="_New... " Grid.ZIndex="2" />
</MenuItem>
<Separator />
<MenuItem Header="_Save" Name="saveMenu" local:MagneticPropertyHolder.IsMagnetic ="True" Loaded="savemenuitem_Loaded" Grid.ZIndex="2"/>
<MenuItem Header="_Save As..." Name="saveasMenu" local:MagneticPropertyHolder.IsMagnetic ="True" Loaded="saveasmenuitem_Loaded" Grid.ZIndex="2"/>
<Separator />
<MenuItem Header="_Exit" Name="exitMenu" Click="MenuItem_Click" local:MagneticPropertyHolder.IsMagnetic ="True" Loaded="exitmenuitem_Loaded" Grid.ZIndex="2" />
</MenuItem>
<StackPanel Grid.ZIndex="2">
<Rectangle VerticalAlignment="Stretch" Width="1" Margin="4" Stroke="#FFA0A0A0" Height="180" Fill="#FFA0A0A0" />
</StackPanel>
</Menu>
</Border>
<k:KinectSensorChooserUI HorizontalAlignment="Center" VerticalAlignment="Top" x:Name="sensorChooserUI"/>
<Canvas Grid.RowSpan="2" x:Name="mouseCanvas" Grid.ZIndex="10" >
</Canvas>
</Grid>
我搜索了一些關於這些2種方法,但似乎他們正在的WinForms,我忘了說我與WPF – kelevrax
我怕我沒有與WPF儘可能多的工作經驗但我相信有az索引屬性或類似的,你可以用在某個地方。對不起,我幫不了你。 – Alpar
我將使用有關ZIndex的Mark的提示進行檢查,無論如何我要感謝 – kelevrax