programing

wpf에서 버튼 테두리를 완전히 제거하려면 어떻게 해야 합니까?

iphone6s 2023. 4. 27. 21:57
반응형

wpf에서 버튼 테두리를 완전히 제거하려면 어떻게 해야 합니까?

이미지가 있고 테두리가 없는 단추를 만들려고 합니다. 마치 Firefox 도구 모음 단추 위에 마우스를 올려 놓고 전체 단추를 보기 전의 것처럼 말입니다.

설정해봤습니다.BorderBrush로.Transparent,BorderThickness로.0그리고 또한 시도했습니다.BorderBrush="{x:Null}"버튼의 윤곽을 볼 수 있습니다.

사용해 보세요.

<Button BorderThickness="0"  
    Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" >...

버튼 템플릿을 변경해야 할 수도 있습니다. 그러면 프레임이 없는 버튼이 제공되지만 누르기 또는 비활성화된 효과도 없습니다.

    <Style x:Key="TransparentStyle" TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Background="Transparent">
                        <ContentPresenter/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

그리고 버튼:

<Button Style="{StaticResource TransparentStyle}"/>

여러분이 해야 할 일은 다음과 같습니다.

<Button Name="MyFlatImageButton"
        Background="Transparent"
        BorderBrush="Transparent"
        BorderThickness="0" 
        Padding="-4">
   <Image Source="MyImage.png"/>
</Button>

이것이 당신이 찾던 것이기를 바랍니다.

편집: 죄송합니다. 이미지 위에 마우스를 올릴 때 버튼 테두리를 보려면 패딩="-4"를 건너뛰기만 하면 된다는 점을 잊었습니다.

저는 왜 다른 사람들이 이 질문이 이 질문과 중복되어 인정된 답변이라는 것을 지적하지 않았는지 모르겠습니다.

여기에 솔루션을 인용합니다.다음을 오버라이드해야 합니다.ControlTemplateButton:

<Button Content="save" Name="btnSaveEditedText" 
                Background="Transparent" 
                Foreground="White" 
                FontFamily="Tw Cen MT Condensed" 
                FontSize="30" 
                Margin="-280,0,0,10"
                Width="60"
                BorderBrush="Transparent"
                BorderThickness="0">
    <Button.Template>
        <ControlTemplate TargetType="Button">
             <ContentPresenter Content="{TemplateBinding Content}"/>
        </ControlTemplate>
    </Button.Template>  
</Button>

다음과 같이 단추 대신 하이퍼링크를 사용할 수 있습니다.

        <TextBlock>
            <Hyperlink TextDecorations="{x:Null}">
            <Image Width="16"
                   Height="16"
                   Margin="3"
                   Source="/YourProjectName;component/Images/close-small.png" />
            </Hyperlink>
        </TextBlock>

도구 모음에 단추를 넣으면 이러한 동작이 발생한다는 것을 이미 알고 있을 수도 있지만, 현재의 모든 테마에서 예측 가능하게 작동할 수 있는 동작을 원한다면 새 컨트롤 템플릿을 만들어야 합니다.

Prashant의 솔루션은 단추에 포커스가 있을 때 도구 모음이 아닌 단추에서 작동하지 않습니다.또한 XP의 기본 테마에서는 100% 작동하지 않습니다. 컨테이너 배경이 흰색일 때 여전히 희미한 회색 테두리를 볼 수 있습니다.

둘 다 설정하는 게 어때요?Background & BorderBrush마찬가지로brush

 <Style TargetType="{x:Type Button}" >
        <Setter Property="Background" Value="{StaticResource marginBackGround}"></Setter>
        <Setter Property="BorderBrush" Value="{StaticResource marginBackGround}"></Setter>            
 </Style>

<LinearGradientBrush  x:Key="marginBackGround" EndPoint=".5,1" StartPoint="0.5,0">
    <GradientStop Color="#EE82EE" Offset="0"/>
    <GradientStop Color="#7B30B6" Offset="0.5"/>
    <GradientStop Color="#510088" Offset="0.5"/>
    <GradientStop Color="#76209B" Offset="0.9"/>
    <GradientStop Color="#C750B9" Offset="1"/>
</LinearGradientBrush>

언급URL : https://stackoverflow.com/questions/995757/how-do-you-completely-remove-the-button-border-in-wpf

반응형