Как создать текстовое поле, которое вписывается в фоновое изображение, идея здесь заключается в том, что я хочу создать NoteBook, например Effect, с линиями и типами пользователей на линиях (так же, как писать в Notebook с линиями) ,Текстовый ящик, который смешивается с фоном
ответ
Возьмите TextBox
с прозрачным фоном, положите его поверх изображения вашей записной книжки и выровняйте размер шрифта, чтобы он выглядел как нужно. Вы можете обернуть TextBox
с ViewBox
<TextBox TextWrapping="Wrap" Background="{x:Null}"/>
Или использовать TextBox
с блокнотом изображения в качестве фона:
<TextBox TextWrapping="Wrap">
<TextBox.Background>
<ImageBrush ImageSource="notebook-paper.png"/>
</TextBox.Background>
</TextBox>
Существует лучший способ сделать это. Вы можете просто переопределить стиль по умолчанию и сделать TextBox прозрачным. Как это.
<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
как требуется, чтобы фон просвечивает. Для удаления текстового поля в фон, обивка, границы и т.д., использование:
<TextBox Margin="0" BorderThickness="0" Padding="0" Background="Transparent" />
Чтобы контролировать высоту строки так, чтобы он выстраивается аккуратно на вашем блокнота линии графика, используйте TextBlock
присоединенные свойства:
<TextBox
Margin="0" BorderThickness="0" Padding="0" Background="Transparent"
TextBlock.LineHeight="10"
TextBlock.LineStackingStrategy="BlockLineHeight" />
Вы уверены, что 'TextBlock.LineHeight' и' TextBlock.LineStackingStrategy' на самом деле являются прикрепленными свойствами? Blend говорит, что они «... могут применяться только к типам, полученным из TextBlock» *, когда я попробовал ваш образец (то есть нормальные свойства Dependency). –
VS2010 также говорит: «Вложенное свойство LineHeight не найдено в типе TextBlock» ... Используете ли вы расширение для TextBlock, которое имеет такие свойства, как Attached Properties? Если так, пожалуйста, укажите. –
- 1. android EditText смешивается с фоном
- 2. Пользовательский текстовый ящик VBScript
- 3. Текстовый ящик как подчеркнутый
- 4. Текстовый ящик Windows Phone многоканальный
- 5. Текстовый вид с фоном чата пузыря
- 6. Текстовый ящик ввода GUI Java
- 7. Текстовый ящик WPF, который только обновляет привязку при вводе, нажат
- 8. Создайте собственный текстовый ящик CSS
- 9. Любые символы - Маскированный текстовый ящик
- 10. Пустой текстовый ящик с использованием JQuery
- 11. Числовой текстовый ящик с локализованной десятичной точкой
- 12. Простой текстовый ящик, связанный с кнопкой, SQL
- 13. пользовательский текстовый ящик с формулой property
- 14. Хром: ящик-тень не показана на img с фоном
- 15. ElementTree текст смешивается с тегами
- 16. Сделать нормальный текстовый ящик, как InputBox
- 17. Пользовательский текстовый ящик для ввода даты
- 18. UILabel с фоном, который обертывает линии
- 19. Кодирование смешивается после репликации
- 20. Текстовый ящик ввода текста очищается от
- 21. jQuery tokeninput автоматически создает новый текстовый ящик
- 22. Текстовый ящик VB, принимающий не числовые данные
- 23. Динамический текстовый ящик в PHP Mail
- 24. Текстовый блок над изображением с фоном той же длины изображения
- 25. Создайте простой текстовый ящик вывода в python
- 26. jQuery Текстовый ящик автозаполнения и gridview ASP.NET
- 27. Пользовательский текстовый ящик в wordpress woocommerce
- 28. Текстовый ящик Mvc, назначающий другой переменной?
- 29. Текстовый ящик с водяными знаками с использованием HTML и jQuery
- 30. CGLayers не смешивается
... и избавиться от границы 'BorderBrush =" {x: Null} "' – StaWho
Или BorderThickness = "0" –