programing

WPF 드롭섀도

skycolor 2023. 4. 17. 21:38
반응형

WPF 드롭섀도

를 설정할 때마다Border.Effect컨트롤에 포함된 모든 컨트롤에는 드롭 섀도가 있습니다.

국경의 모든 제어가 아닌 국경에만 그림자를 설정하는 방법이 있을까요?

다음은 내 코드의 간단한 예입니다.

<Grid>
 <Border Margin="68,67,60,67" BorderBrush="Black" BorderThickness="1" CornerRadius="10">
  <Border.Effect>
   <DropShadowEffect/>
  </Border.Effect>
  <Rectangle Fill="White" Stroke="Black" Margin="37,89,118,98" />
 </Border>
</Grid>

두 가지 선택지가 있습니다.

옵션 1: 효과가 있는 테두리 요소를 테두리/사각형 요소 트리의 형제로서 추가합니다.다음과 같은 경우:

<Grid>
    <Border Margin="68,67,60,67"
            BorderBrush="Black"
            BorderThickness="1"
            CornerRadius="10">
        <Border.Effect>
            <DropShadowEffect />
        </Border.Effect>
    </Border>
    <Border Margin="68,67,60,67"
            BorderBrush="Black"
            BorderThickness="1"
            CornerRadius="10">

        <Rectangle Fill="White"
                   Stroke="Black"
                   Margin="37,89,118,98">
        </Rectangle>
    </Border>

</Grid>

옵션 2: 다음과 같이 사각형을 테두리 요소의 형제 모양으로 배치합니다.

   <Grid>
    <Border Margin="68,67,60,67"
            BorderBrush="Black"
            BorderThickness="1"
            CornerRadius="10">
        <Border.Effect>
            <DropShadowEffect />
        </Border.Effect>
    </Border>
    <Rectangle Fill="White"
               Stroke="Black"
               Margin="37,89,118,98">
    </Rectangle>

</Grid>

메모: 두 번째 솔루션의 레이아웃을 조정하여 직사각형이 원하는 위치에 오도록 해야 합니다.

당신의 질문에 답이 있는 것은 알지만, 가장 간단한 답은 아닌 것 같습니다.질문에 대한 가장 간단한 대답은 그림자를 설정한 컨트롤의 배경을 색칠하는 것입니다.다음과 같은 경우:

<Grid>
    <Border Margin="68,67,60,67" Background="White" BorderBrush="Black" 
        BorderThickness="1" CornerRadius="10">
        <Border.Effect>
            <DropShadowEffect/>
        </Border.Effect>
        <Rectangle Fill="White" Stroke="Black" Margin="37,89,118,98" />
    </Border>
</Grid>

그 결과:

No Shadow Fall Through

흰색 툴바와 비슷한 디자인을 사용해 보았습니다.

여기에 이미지 설명 입력

사용법은 다음과 같습니다.

<Border CornerRadius="8" Background="White" Grid.Row="1">
    <Border.Effect>
        <DropShadowEffect ShadowDepth="3" Opacity="0.2"/>
    </Border.Effect>
</Border>

언급URL : https://stackoverflow.com/questions/2831062/wpf-drop-shadow

반응형