2013-07-07 7 views
0

enter image description here문제는 TextBox 컨트롤

내가 특정 범위에 대한 TextBox 제어를 검증하고에 유효성 검사를 수행 할 때. 사용자가 범위를 벗어난 값을 입력하면 위 그림과 같은 Adorner 컨트롤이 표시됩니다.

제 문제는 컨트롤이 창 크기를 초과하여 잘리는 것입니다. 위와 같이 창 크기가 작더라도 빨간색 아치 너를 창 위에 어떻게 배치합니까?

<ControlTemplate x:Key="validationTemplate"> 
     <DockPanel LastChildFill="True"> 
      <TextBlock Name="ErrorText" DockPanel.Dock="Bottom" Foreground="White" 
            FontSize="12" Padding="7" FontFamily="Trebuchet MS" 
            Margin="5,5,0,0"           
            TextWrapping="Wrap"           
            Text="{Binding [0].ErrorContent}" >    
       <TextBlock.Background> 
        <SolidColorBrush Color="Red" Opacity="0.95"></SolidColorBrush> 
       </TextBlock.Background> 
      </TextBlock> 
      <AdornedElementPlaceholder Name="ErrorTextBox" /> 
     </DockPanel> 
    </ControlTemplate> 

<Style x:Key="ValidationStyle" TargetType="{x:Type TextBox}"> 
     <Style.Triggers> 
      <Trigger Property="Validation.HasError" Value="True"> 
       <Setter Property="BorderBrush" Value="Red" /> 
       <Setter Property="Effect"> 
        <Setter.Value> 
         <DropShadowEffect Color="Red" ShadowDepth="5" Direction="135" Opacity="0.5"></DropShadowEffect> 
        </Setter.Value> 
       </Setter> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 

이 도와주세요 : 아래

내가 ControlTemplateStyle A에 대한 사용했던 코드입니다.

답변

0

음, 나는 Adorner이 창 외부에서 렌더링 될 수 있다는 것을 모릅니다. 따라서 질문에 대해서는 Adorner을 창 외부에 배치 할 수 없습니다.

그러나 이러한 동작이 필요할 때 팝업이 일반적으로 사용됩니다. 모든 것을 Popup 요소로 감싸고 도움이되는지 확인하십시오.