Silverlight: Imagem transparente no botão
-
19-08-2019 - |
Pergunta
Eu gostaria de usar um arquivo PNG transparente em um botão Silverlight. Além disso, eu gostaria que o próprio botão para ser transparente de modo que o fundo (atrás do botão) mostra completamente. Eu acho que se eu definir a opacidade do botão também afeta a imagem. Eu não quero que a imagem inteira para ser transparente - apenas as partes transparentes do que como definido no PNG
.Algumas ideias sobre como isso pode ser feito?
Solução
transparência Silverlight suporta PNG. Isso funciona:
<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>
Você deverá ver a imagem é transparente para a parte de trás do botão. Se você deseja que o botão transparente, então necessidade yuo para criar um modelo de botão que é clara. O link na resposta de texmex5 é uma descida.
Outras dicas
De minhas investigações posteriores, parece que nem todos os PNGs transparentes vai funcionar. Eles têm que ser transparências à base de alfa (em oposição a base paleta-). Eles também têm que estar em imagens menos 16 bits. A 8-bit padrão não funciona.
<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>