Estou tentando criar um botão com uma imagem e sem borda - assim como os botões da barra de ferramentas do Firefox antes de passar o mouse sobre eles e ver o botão completo.
Eu tentei definindo o BorderBrush
que Transparent
, BorderThickness
a 0
, e também tentou BorderBrush="{x:Null}"
, mas você ainda pode ver o contorno do botão.
wpf
button
transparency
Steven Jeuris
fonte
fonte
Respostas:
Tente isto
fonte
HorizontalContentAlignment
paraStretch
.Você pode ter que alterar o modelo do botão, isso lhe dará um botão sem moldura, mas também sem nenhum efeito de pressionar ou desativar:
E o botão:
fonte
<Button Style="{StaticResource TransparentButton}"/>
deveria ser<Button Style="{StaticResource TransparentStyle}"/>
O que você precisa fazer é algo como isto:
Espero que isto seja o que você estava procurando.
Edit: Desculpe, esqueci de mencionar que se você quiser ver a borda do botão ao passar o mouse sobre a imagem, tudo o que você precisa fazer é pular o Padding = "- 4" .
fonte
Não sei por que outras pessoas não apontaram que essa pergunta é duplicada por essa com resposta aceita .
Cito aqui a solução: você precisa substituir o
ControlTemplate
deButton
:fonte
Você pode usar o hiperlink em vez do botão, desta forma:
fonte
Você já deve saber que colocar o seu botão dentro de uma barra de ferramentas fornece esse comportamento, mas se você deseja algo que funcione em TODOS os temas atuais com qualquer tipo de previsibilidade, precisará criar um novo ControlTemplate.
A solução da Prashant não funciona com um botão que não está na barra de ferramentas quando o botão está focado. Também não funciona 100% com o tema padrão no XP - você ainda pode ver bordas cinzas fracas quando o plano de fundo do contêiner estiver branco.
fonte
Programaticamente, você pode fazer isso:
fonte
Por que você não define os dois
Background & BorderBrush
da mesma formabrush
fonte