Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 混合到背景中的文本框_Wpf_Silverlight_Windows Phone 7 - Fatal编程技术网

Wpf 混合到背景中的文本框

Wpf 混合到背景中的文本框,wpf,silverlight,windows-phone-7,Wpf,Silverlight,Windows Phone 7,如何创建一个融入背景页面的文本框,这里的想法是我想创建一个类似笔记本的效果,线条和用户类型在线条上(就像在笔记本中用线条书写一样)。拿一个透明背景的文本框,将其放在笔记本纸图像的顶部,对齐字体大小,使其看起来符合要求。您可能需要使用ViewBox <TextBox TextWrapping="Wrap" Background="{x:Null}"/> 有一种更好的方法可以做到这一点。您只需覆盖默认样式并使文本框透明即可。像那样 <TextBox Style="{Static

如何创建一个融入背景页面的文本框,这里的想法是我想创建一个类似笔记本的效果,线条和用户类型在线条上(就像在笔记本中用线条书写一样)。

拿一个透明背景的
文本框
,将其放在笔记本纸图像的顶部,对齐字体大小,使其看起来符合要求。您可能需要使用
ViewBox

 <TextBox TextWrapping="Wrap" Background="{x:Null}"/>

有一种更好的方法可以做到这一点。您只需覆盖默认样式并使文本框透明即可。像那样

<TextBox Style="{StaticResource TransparentTextBox}"/>

以下是这种风格:

<Style x:Key="TransparentTextBox" TargetType="TextBox">
        <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
        <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/>
        <Setter Property="Background" Value="{StaticResource PhoneTextBoxBrush}"/>
        <Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/>
        <Setter Property="BorderBrush" Value="{StaticResource PhoneTextBoxBrush}"/>
        <Setter Property="SelectionBackground" Value="{StaticResource PhoneAccentBrush}"/>
        <Setter Property="SelectionForeground" Value="{StaticResource PhoneTextBoxSelectionForegroundBrush}"/>
        <Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/>
        <Setter Property="Padding" Value="2"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="TextBox">
                    <Grid Background="Transparent">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal"/>
                                <VisualState x:Name="MouseOver"/>
                                <VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="EnabledBorder">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="DisabledOrReadonlyBorder">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="ReadOnly">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="EnabledBorder">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Collapsed</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="DisabledOrReadonlyBorder">
                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                <DiscreteObjectKeyFrame.Value>
                                                    <Visibility>Visible</Visibility>
                                                </DiscreteObjectKeyFrame.Value>
                                            </DiscreteObjectKeyFrame>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="DisabledOrReadonlyBorder">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxBrush}"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="DisabledOrReadonlyBorder">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxBrush}"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="DisabledOrReadonlyContent">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxReadOnlyBrush}"/>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                            <VisualStateGroup x:Name="FocusStates">
                                <VisualState x:Name="Focused"/>
                                <VisualState x:Name="Unfocused"/>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Border x:Name="EnabledBorder" BorderThickness="{TemplateBinding BorderThickness}" Margin="{StaticResource PhoneTouchTargetOverhang}">
                            <ContentControl x:Name="ContentElement" BorderThickness="0" HorizontalContentAlignment="Stretch" Margin="{StaticResource PhoneTextBoxInnerMargin}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch" Content="sdasdasd"/>
                        </Border>
                        <Border x:Name="DisabledOrReadonlyBorder" BorderBrush="{StaticResource PhoneDisabledBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" Margin="{StaticResource PhoneTouchTargetOverhang}" Visibility="Collapsed">
                            <TextBox x:Name="DisabledOrReadonlyContent" Background="Transparent" Foreground="{StaticResource PhoneDisabledBrush}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" IsReadOnly="True" SelectionForeground="{TemplateBinding SelectionForeground}" SelectionBackground="{TemplateBinding SelectionBackground}" TextAlignment="{TemplateBinding TextAlignment}" TextWrapping="{TemplateBinding TextWrapping}" Text="{TemplateBinding Text}" Template="{StaticResource PhoneDisabledTextBoxTemplate}"/>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

崩溃
看得见的
崩溃
看得见的

根据需要设置
文本框的样式,以便背景显示出来。要删除文本框的背景、填充、边框等,请使用:

<TextBox Margin="0" BorderThickness="0" Padding="0" Background="Transparent" />

如果你能用一行代码达到同样的效果,那么写81行代码会更好吗?;)@斯塔:同意。。。但我不敢相信你竟然费心数数这些行:)@HiTech Magic:Notepad++,ctrl-c,ctrl-v:)@StaWho:Revised。。。但我不敢相信,你竟然用Notepad++,ctrl-c,ctrl-v:>费劲地数数这些行,其中大部分是由Expression Blend生成的,这对于任何使用wpf/silverlight的人来说都是非常有用的工具。此外,这种方式封装了布局中的样式,这在控件由数百行代码组成时非常重要……并且去掉边框
BorderBrush=“{x:Null}”
或BorderThickness=“0”您确定
TextBlock.LineHeight
TextBlock.LineStackingStrategy
实际上是附加属性吗?Blend说,当我尝试您的示例时,它们“…只能应用于从TextBlock派生的类型”(即普通依赖属性)。VS2010还说,“在类型TextBlock中找不到附加的属性LineHeight”。。。您是否使用将这些作为附加属性的TextBlock扩展?如果是,请说明。
<TextBox Margin="0" BorderThickness="0" Padding="0" Background="Transparent" />
<TextBox
    Margin="0" BorderThickness="0" Padding="0" Background="Transparent"
    TextBlock.LineHeight="10" 
    TextBlock.LineStackingStrategy="BlockLineHeight" />