2011-03-25 49 views
0

我正在编写一个记录用户输入的程序,并且能够通过在它们周围绘制一个框来装饰鼠标结束的UI组件,这很有用。是否可以在WPF ComboBox下拉菜单上绘制?

我通过在该窗口中录制和绘图的程序顶部创建一个透明窗口来实现此目的。

这适用于大多数程序,但在ComboBox下拉菜单下绘制。它看起来像下拉窗口是最上面的样式集。

我已经尝试将我的装饰窗口设置为最顶层,并且下拉框仍然绘制它。如果我定期将我的装饰窗口设置为最顶层并处于活动状态,则在激活装饰窗口时,下拉框关闭。我尝试设置PopupPopup.StaysOpen属性,其中包含下拉菜单,但没有任何效果。

有没有什么办法让我在不修改菜单的情况下画下拉菜单?

谢谢。

+1

使用边界,模板和触发器的组合会不会更好地实现?与其他窗口一起工作......? – Paul 2011-03-25 19:47:40

回答

0

我能够通过将我的窗口的ShowActivated设置为false,然后在弹出窗口打开后将其设置为Topmost来实现此功能。

0

您是否尝试过使用Popup控件而不是窗口?我相信它和ComboBox DropDown是同一层,所以你应该能够设置ZIndex来绘制DropDown的顶点。

您可以通过添加样式到ComboBox

<ComboBox> 
    <ComboBox.Resources> 
     <Style TargetType={x:Type ComboBox}> 
      <Setter Property="Canvas.ZIndex" Value="1" /> 
     </Style> 
    </ComboBox.Resources> 
<ComboBox> 
1

也许Adorner Layer,这始终是高于一切的设置组合框的弹出zIndex的,是最好的解决办法?

+0

Adorner图层+1。这正是他们想要的,您不必担心在用户Alt + Tabs退出应用程序之后,您的装饰器窗口保持打开状态。 – 2011-04-26 15:00:53

相关问题