2012-10-10 47 views
4

我有一个WPF应用程序,并在其上放置了一个用户控件。我希望用户控制背景是透明的,但用户控件上的按钮等要坚实。如何在WPF中创建透明的用户控件?

下图显示了我现在拥有的东西。我希望红色区域内部是透明的(用户控件在理论上可以有很多不同的形状),但其中包含的控件是实体。

enter image description here

主窗口XAML是;

<Canvas Height="450" Width="300"> 
    <Border Opacity=".2" > 
     <Image Source="D:\\BarbourCoat.jpg" Width="300" ></Image> 
    </Border> 
    <local:UserControl1 Height="100" Canvas.Left="10" Canvas.Top="10" Width="100"/> 
</Canvas> 

虽然用户控制XAML是;

<Canvas Background="Transparent"> 
    <Path Data="M 10 10 L 100 10 L 250 50 L 280 200 L 180 250 L 25 270 Z" Stroke="Red"></Path> 
    <Button Content="Button" HorizontalAlignment="Left" Margin="41,53,0,0" VerticalAlignment="Top" Width="75"/> 
    <TextBox HorizontalAlignment="Left" Height="23" Margin="90,112,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/> 
    <TextBlock HorizontalAlignment="Left" Margin="69,209,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/> 
</Canvas> 

我很难让我的头围绕这一点,任何帮助将不胜感激。

回答

5

在XAML中,您是否使整个UserControl变得透明?

<UserControl Background="Transparent">

+0

我现在有,但上面的边框元素,它不会“看穿”,这就是我认为是问题的核心位。 –

+0

我也觉得我有一个Path问题,里面需要清理,我可能可以使用ClippingMask。 –

+0

@ RyanO'Neill如果你希望它是半透明的,可以设置''Path''或'UserControl'的'Opacity' – Rachel