如何创建非透明控件容器

时间:2015-07-07 06:49:58

标签: wpf wpf-controls

我试图滚动我自己的Expander对象。对于这个对象,我需要创建一个控件容器,当它可见时,它下面的所有东西都只隐藏到容器的边界。

当然我还需要在控件容器中放置控件,例如Labels,TextBox等。

有没有办法解决这个问题。即使我将Opaque属性设为100%,我当前对象下面的所有内容也会显示出来。我已经尝试过Canvas,Grid等,似乎没有任何东西可以使用Opaque属性。我甚至尝试使用Expander对象,但它和其他所有对象一样透明。我一定错过了什么。

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您可以在单个网格控件中使用两个网格控件

<Grid>
    <Grid x:Name="grid1" Height="200" Width="200" Background="Yellow">
            <Label Content="Hello Grid1"/>
            <TextBox Text="Hi Grid1" Height="20" Width="50"/>

        </Grid>

    <Grid x:Name="grid2" Height="200" Width="200" Background="Red" Visibility="Visible">
            <Label Content="Hello Grid2"/>
            <TextBox Text="Hi Grid2" Height="20" Width="50"/>

        </Grid>
    </Grid>

第二个网格“grid2”的可见性可以根据需要进行更改。

答案 1 :(得分:0)

供他人参考。我最终做的是为扩展器窗口创建一个完全独立的窗口,并将它的WindowStyle设置为&#34; None&#34;,BorderThickness为0,ResizeMode为&#34; NoResize和ShowInTaskbar = false。

显示时,我实例化了这个窗口,并根据下面的窗口将其放置在我想要显示的位置。这完全有效,除了在显示顶部的窗口时我无法移动窗口。这也可以通过执行Show而不是ShowDialog来处理,然后在我移动窗口时移动顶部窗口。

答案 2 :(得分:0)

你能详细说明你想做什么吗?

您在此处给出的描述显示,根据我的追赶,您希望在Expander控件中正确显示组件。没有更多......

请尝试使用一些示例代码详细说明问题。