locked
По шаблону вопрос RRS feed

  • Общие обсуждения

  • Есть TextBox. есть стиль. Но получилось, что по вертикали текст привязывается к верху TextBox, Я решил поменять шаблон и в Blend сделал редактировать копию. И отредактировал сейчас всё нормально. Но получилось, что когда мышкой устанавливаю фокус на TextBox то курсор моргает размером максимум 1 пиксель. Но когда ввожу любой символ - то всё нормально. Курсор в размер TextBox Нашёл Focus но там пусто.

        <ControlTemplate x:Key="TextBoxControlTemplateEnterCenter" TargetType="TextBox">
            <Grid>
                <Grid.Resources>
                    <Style x:Name="DeleteButtonStyle" TargetType="Button">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="Button">
                                    <Grid>
                                        <VisualStateManager.VisualStateGroups>
                                            <VisualStateGroup x:Name="CommonStates">
                                                <VisualState x:Name="Normal" />
                                                <VisualState x:Name="PointerOver">
                                                    <Storyboard>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement"
        													Storyboard.TargetProperty="Background">
                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxButtonPointerOverBackgroundThemeBrush}" />
                                                        </ObjectAnimationUsingKeyFrames>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
        													Storyboard.TargetProperty="BorderBrush">
                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxButtonPointerOverBorderThemeBrush}" />
                                                        </ObjectAnimationUsingKeyFrames>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement"
        													Storyboard.TargetProperty="Foreground">
                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxButtonPointerOverForegroundThemeBrush}" />
                                                        </ObjectAnimationUsingKeyFrames>
                                                    </Storyboard>
                                                </VisualState>
                                                <VisualState x:Name="Pressed">
                                                    <Storyboard>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement"
        													Storyboard.TargetProperty="Background">
                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxButtonPressedBackgroundThemeBrush}" />
                                                        </ObjectAnimationUsingKeyFrames>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
        													Storyboard.TargetProperty="BorderBrush">
                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxButtonPressedBorderThemeBrush}" />
                                                        </ObjectAnimationUsingKeyFrames>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement"
        													Storyboard.TargetProperty="Foreground">
                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxButtonPressedForegroundThemeBrush}" />
                                                        </ObjectAnimationUsingKeyFrames>
                                                    </Storyboard>
                                                </VisualState>
                                                <VisualState x:Name="Disabled">
                                                    <Storyboard>
                                                        <DoubleAnimation Storyboard.TargetName="BackgroundElement"
        													Storyboard.TargetProperty="Opacity"
        													To="0"
        													Duration="0" />
                                                        <DoubleAnimation Storyboard.TargetName="BorderElement"
        													Storyboard.TargetProperty="Opacity"
        													To="0"
        													Duration="0" />
                                                    </Storyboard>
                                                </VisualState>
                                            </VisualStateGroup>
                                        </VisualStateManager.VisualStateGroups>
                                        <Border x:Name="BorderElement"
        									BorderBrush="{StaticResource TextBoxButtonBorderThemeBrush}"
        									BorderThickness="{TemplateBinding BorderThickness}"/>
                                        <Border x:Name="BackgroundElement"
        									Background="{StaticResource TextBoxButtonBackgroundThemeBrush}"
        									Margin="{TemplateBinding BorderThickness}">
                                            <TextBlock x:Name="GlyphElement"
        										Foreground="{StaticResource TextBoxButtonForegroundThemeBrush}"
        										VerticalAlignment="Center"
        										HorizontalAlignment="Center"
        										Text="&#xE0A4;"
        										FontFamily="{StaticResource SymbolThemeFontFamily}"/>
                                        </Border>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Grid.Resources>
                <VisualStateManager.VisualStateGroups>
                    <VisualStateGroup x:Name="CommonStates">
                    	<VisualStateGroup.Transitions>
                    		<VisualTransition From="Focused" GeneratedDuration="0"/>
                    	</VisualStateGroup.Transitions>
                		<VisualState x:Name="Disabled">
                			<Storyboard>
                				<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement" Storyboard.TargetProperty="Background">
                					<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxDisabledBackgroundThemeBrush}" />
                				</ObjectAnimationUsingKeyFrames>
                				<ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement" Storyboard.TargetProperty="BorderBrush">
                					<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxDisabledBorderThemeBrush}" />
                				</ObjectAnimationUsingKeyFrames>
                				<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentElement" Storyboard.TargetProperty="Foreground">
                					<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TextBoxDisabledForegroundThemeBrush}" />
                				</ObjectAnimationUsingKeyFrames>
                			</Storyboard>
                		</VisualState>
                		<VisualState x:Name="Normal">
                			<Storyboard>
                				<DoubleAnimation Storyboard.TargetName="BackgroundElement"
                					Storyboard.TargetProperty="Opacity"
                					Duration="0"
                					To="{StaticResource TextControlBackgroundThemeOpacity}" />
                				<DoubleAnimation Storyboard.TargetName="BorderElement"
                					Storyboard.TargetProperty="Opacity"
                					Duration="0"
                					To="{StaticResource TextControlBorderThemeOpacity}" />
                			</Storyboard>
                		</VisualState>
                		<VisualState x:Name="PointerOver">
                			<Storyboard>
                				<DoubleAnimation Storyboard.TargetName="BackgroundElement"
                					Storyboard.TargetProperty="Opacity"
                					Duration="0"
                					To="{StaticResource TextControlPointerOverBackgroundThemeOpacity}" />
                				<DoubleAnimation Storyboard.TargetName="BorderElement"
                					Storyboard.TargetProperty="Opacity"
                					Duration="0"
                					To="{StaticResource TextControlPointerOverBorderThemeOpacity}" />
                			</Storyboard>
                		</VisualState>
                		<VisualState x:Name="Focused" />
                	</VisualStateGroup>
                    <VisualStateGroup x:Name="ButtonStates">
                        <VisualState x:Name="ButtonVisible">
                            <Storyboard>
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DeleteButton"
        							Storyboard.TargetProperty="Visibility">
                                    <DiscreteObjectKeyFrame KeyTime="0">
                                        <DiscreteObjectKeyFrame.Value>
                                            <Visibility>Visible</Visibility>
                                        </DiscreteObjectKeyFrame.Value>
                                    </DiscreteObjectKeyFrame>
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </VisualState>
                        <VisualState x:Name="ButtonCollapsed" />
                    </VisualStateGroup>
                </VisualStateManager.VisualStateGroups>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Border x:Name="BackgroundElement"
        			Background="{TemplateBinding Background}"
        			Margin="{TemplateBinding BorderThickness}"
        			Grid.ColumnSpan="2"/>
                <Border x:Name="BorderElement"
        			BorderBrush="{TemplateBinding BorderBrush}"
        			BorderThickness="{TemplateBinding BorderThickness}"
        			Grid.ColumnSpan="2"/>
                <ScrollViewer x:Name="ContentElement"
        			HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}"
        			HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
        			VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}"
        			VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
        			IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}"
        			IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}"
        			IsDeferredScrollingEnabled="{TemplateBinding ScrollViewer.IsDeferredScrollingEnabled}"
        			Margin="{TemplateBinding BorderThickness}"
        			Padding="{TemplateBinding Padding}"
        			IsTabStop="False"
        			ZoomMode="Disabled" HorizontalAlignment="Center" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" >
                	<ScrollViewer.RenderTransform>
                		<CompositeTransform/>
                	</ScrollViewer.RenderTransform>
                </ScrollViewer>
                <Button x:Name="DeleteButton"
        			Style="{StaticResource DeleteButtonStyle}"
        			BorderThickness="{TemplateBinding BorderThickness}"
        			IsTabStop="False"
        			Grid.Column="1"
        			Visibility="Collapsed"
        			FontSize="{TemplateBinding FontSize}"
        			VerticalAlignment="Stretch"/>
            </Grid>
        </ControlTemplate>

    Удаляю шаблон всё нормально

     

     


    Спасибо



    18 января 2013 г. 4:12

Все ответы

  • А что у TextBox в WinRT свойство VerticalContentAlignment отсутствует? У меня просто сейчас нет возможности посмотреть, но насколько помню оно все еще есть.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    18 января 2013 г. 9:54
  • Пробовал - не центрирует.

    Спасибо

    19 января 2013 г. 8:23
  • путём поиска нашёл что в секции

                <ScrollViewer x:Name="ContentElement"
        			HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}"
        			HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
        			VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}"
                    	VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
                    	IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}"
    	                IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}"
        			IsDeferredScrollingEnabled="{TemplateBinding ScrollViewer.IsDeferredScrollingEnabled}"
        			Margin="{TemplateBinding BorderThickness}"
        			Padding="{TemplateBinding Padding}"
        			IsTabStop="False"
        			ZoomMode="Disabled" HorizontalAlignment="Left" VerticalAlignment="Center" />

    если убрать

        			VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}"
                    	VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
    

    то курсор появится но вертикальное смещение опять к верху прижимается

     


    Спасибо

    19 января 2013 г. 18:46
  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]

    25 января 2013 г. 11:39