我想在silverlight按鈕上使用透明PNG文件。另外,我希望按鈕本身是透明的,這樣背景(按鈕後面)就會顯示出來。我發現如果我設置按鈕的不透明度,它也會影響圖像。我不希望整個圖像透明 - 只是PNG中定義的透明部分。Silverlight:按鈕上的透明圖像
關於如何完成這一任何想法?
我想在silverlight按鈕上使用透明PNG文件。另外,我希望按鈕本身是透明的,這樣背景(按鈕後面)就會顯示出來。我發現如果我設置按鈕的不透明度,它也會影響圖像。我不希望整個圖像透明 - 只是PNG中定義的透明部分。Silverlight:按鈕上的透明圖像
關於如何完成這一任何想法?
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的答案中的鏈接是下降的一個。
從我後來的調查來看,似乎並非所有透明的PNG都能正常工作。他們必須是基於alpha的透明膠片(而不是基於調色板)。他們也必須至少是16位圖像。標準的8位不起作用。
<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>