2011-05-25 65 views
0

我使用ElementHost在WinForms控件中托管WPF用户控件。我的WPF控件有DropShadowEffect,但它没有显示在屏幕上。 WPF控件是平坦的。我需要做什么?这里是我的代码:ElementHost DropShadowEffect

public WinFormsUserControl3() 
{ 
      InitializeComponent(); 
      elementHost1 = new ElementHost() { Child = new MyWPFUserControl(), AutoSize=true}; 
      Controls.Add(elementHost1); 
} 

MyWPFUserControl XAML:

<UserControl x:Class="WindowsFormsApplication1.MyWPFUserControl" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WindowsFormsApplication1" 
    Height="113" Width="107" Padding="10" Background="Red" > 
    <UserControl.Effect> 
     <DropShadowEffect></DropShadowEffect> 
    </UserControl.Effect> 
    <StackPanel Background="Yellow"> 
     <Button Content="Button 1" Padding="5" Margin="5" /> 
     <Button x:Name="Button2" Padding="5" Margin="5" Content="Button 2" /> 
    </StackPanel> 
</UserControl> 

回答

0

这是DropShadowEffect

<UserControl x:Class='SilverlightApplication3.MainPage' 
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' 
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'> 
    <Canvas Height="Auto" Width="Auto" Background="White"> 
     <TextBlock Height="49" Width="814" Canvas.Left="22" Canvas.Top="18" 
        Text="this is a test" TextWrapping="Wrap" 
        d:LayoutOverrides="Height" FontSize="30" FontFamily="Arial"> 
     <TextBlock.Effect> 
     <DropShadowEffect/> 
     </TextBlock.Effect> 
     </TextBlock> 
    </Canvas> 
</UserControl> 
样本XAML代码
相关问题