그림자 드롭 :모서리가 둥근 텍스트 상자와 내가 같은 텍스트 상자를 복제하기 위해 노력하고있어
텍스트 상자 외부의 배경이 부모 컨테이너에 의해 처리됩니다.
- 라운딩 모서리 외부 그림자에 추가 상단과 오른쪽
- 에 내부 그림자를 추가
- : 제가 알기로
4 개 항목은 내가 알아서 할 필요가있다 왼쪽 및 아래쪽면
- 그림자 효과를 상속 한 텍스트 상자의 텍스트 방지.
나는 WPF rounded corner textbox 및 http://www.codeproject.com/Articles/225076/Creating-Inner-Shadows-for-WPF-and-Silverlight에서 코드를 차용했지만 난 그냥이 작업을 수행하는 WPF에 대한 충분한 이해를 가지고 있지 않습니다. 현재
코드 :
문제가 그림자가 위쪽 및 오른쪽 라운딩 벗어난 점이다;
<Window x:Class="Test.TestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<ControlTemplate x:Key="TextBoxBaseControlTemplate" TargetType="{x:Type TextBoxBase}">
<Border Background="{TemplateBinding Background}"
x:Name="Bd" BorderBrush="Black"
BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="8"
ClipToBounds="True">
<Border Background="Transparent" BorderBrush="Black" BorderThickness="0,10,10,0" Margin="0,-11,-11,0">
<Border.Effect>
<DropShadowEffect ShadowDepth="0" BlurRadius="8"/>
</Border.Effect>
<ScrollViewer x:Name="PART_ContentHost"/>
</Border>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" TargetName="Bd"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
<Trigger Property="Width" Value="Auto">
<Setter Property="MinWidth" Value="100"/>
</Trigger>
<Trigger Property="Height" Value="Auto">
<Setter Property="MinHeight" Value="20"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>
<Grid>
<TextBox Template="{StaticResource TextBoxBaseControlTemplate}" Height="25" Margin="5">
Text
</TextBox>
</Grid>
</Window>
이것으로 렌더링 텍스트가 음영 처리됩니다. 그림자 왼쪽에 & 하단에 그림자를 추가하는 방법을 알아 냈습니다. 나는의 경계선에서
CornerRadius="8"
을 제거하면
는 내가 안쪽에 그림자와 사각형을 얻는다.
나는 이것을 해결하는 방법에 대한 모든 조언을 제공합니다.
저는 솔직히 말하면 당신이 묘사 한 텍스트 상자는 추악합니다. 꽤 아니야. 나는 방금 그것이 필요하다고 느꼈다. – Dai
두 번째 테두리에 모서리 반경을 추가하여 위쪽과 오른쪽에 그림자를 고정해야합니다. –
@Dai, 왜 내가 싫어하는지 물어봐도 될까요? 상자 바깥 쪽은 부모 컨테이너의 배경입니다. 선형 그래디언트가 될 것입니다. – andrew