0

在此处输入图像描述

我正在验证TextBox特定范围的控件。如果用户输入的值超出范围,则会Adorner显示如上图所示的控件。

我的问题是控件超出了窗口大小。即使窗口尺寸如上所示,我如何将红色装饰器放置在窗口上方。

下面是我用于 a ControlTemplateand的代码Style

<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>

请帮忙。

4

1 回答 1

0

好吧,我不知道Adorners 可以在窗外呈现,所以对于你的问题,你不能放在Adorner窗外。

但是,当您需要这样的行为时,通常会使用弹出窗口。只需将所有内容包装到Popup元素中,看看它是否有帮助。

于 2013-07-07T08:27:33.550 回答