2009-01-17 86 views
1

我想在silverlight按鈕上使用透明PNG文件。另外,我希望按鈕本身是透明的,這樣背景(按鈕後面)就會顯示出來。我發現如果我設置按鈕的不透明度,它也會影響圖像。我不希望整個圖像透明 - 只是PNG中定義的透明部分。Silverlight:按鈕上的透明圖像

關於如何完成這一任何想法?

回答

3

Silverlight支持PNG透明度。這工作:

<UserControl x:Class="SilverlightApplication17.Page" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Width="400" Height="300"> 
<Grid x:Name="LayoutRoot" Background="Green"> 
<Button Width="200" Height="200"> 
    <Button.Content> 
    <Image Source="http://wildermuth.com/images/tx_head.png" /> 
    </Button.Content> 
</Button> 

您應該看到圖像是透明的按鈕的回來。如果你想讓按鈕透明,那麼你需要創建一個清晰的按鈕模板。 texmex5的答案中的鏈接是下降的一個。

1

從我後來的調查來看,似乎並非所有透明的PNG都能正常工作。他們必須是基於alpha的透明膠片(而不是基於調色板)。他們也必須至少是16位圖像。標準的8位不起作用。

0
<UserControl x:Class="MyProject.SilverlightControl1" 
    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" 
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
    mc:Ignorable="d" 
    d:DesignHeight="300" d:DesignWidth="400"> 

     <Grid x:Name="LayoutRoot" Background="Green"> 
      <Image Width="18" Height="18" DataContext="{Binding PrintMovementCommand}" Source="{Binding IconSource}" VerticalAlignment="Center" HorizontalAlignment="Center" ToolTipService.ToolTip="{Binding Title}" Cursor="Hand"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="MouseLeftButtonUp"> 
         <i:InvokeCommandAction Command="{Binding Command}"/> 
        </i:EventTrigger> 
       </i:Interaction.Triggers> 
      </Image> 
     </Grid> 

    </UserControl>