Я создал собственный стиль для текстового поля с использованием PATH. Ящик точно выглядит так, как я этого хотел, но когда я пишу какой-либо текст в нем, ничего не появляется. Казалось бы, что-то внутри моего стиля либо блокирует его, либо мне нужно что-то добавить для контента. Но я не уверен, что именно, кто-нибудь знает, что я могу сделать, чтобы текст появился внутри пользовательского окна?Текстовое поле, не отображающее текст после того, как я его создал с помощью пути
<Style x:Key="AppearingTextbox" TargetType="{x:Type TextBox}">
<Setter Property="Cursor" Value="Arrow"/>
<Setter Property="Foreground" Value="#3E82C4"/>
<Setter Property="Background" Value="#0F1C2B"/>
<Setter Property="Opacity" Value="0"/>
<Setter Property="IsReadOnly" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<StackPanel>
<Path Data="M0 0 30 0 50 -10 70 0 100 0 100 30 0 30z" Fill="#0F1C2B"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=Ikona, Path=IsMouseOver}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard >
<Storyboard TargetProperty="Opacity" Duration="00:00:00.3" AutoReverse="False">
<DoubleAnimation From="0" To="1" Duration="00:00:00.3"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard >
<Storyboard TargetProperty="Opacity" Duration="00:00:00.3" AutoReverse="False">
<DoubleAnimation From="1" To="0" Duration="00:00:00.3"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
Это применяется к этому TextBox:
<TextBox Style="{DynamicResource AppearingTextbox}" Height="30" Width="100" FontSize="10" Margin="0,480,0,0">
Some text
</TextBox>
Благодаря кучу людей, мне удалось заставить его работать. Я не мог поместить его в тег границы, потому что тег границы принимает только один дочерний элемент. Вместо этого я использовал Grid. Сетка также хороша, потому что в документации я где-то читал, что позволяет складывать элементы друг на друга. Это то, что я сделал для тех, кто наткнется на это в будущем.
В <ControlTemplate>
теге я сделал следующее:
<ControlTemplate TargetType="{x:Type TextBox}">
<Grid>
<Path Data="M0 0 30 0 50 -10 70 0 100 0 100 30 0 30z" Fill="#0F1C2B"/>
<ScrollViewer Margin="0" x:Name="PART_ContentHost" />
</Grid>
</ControlTemplate>
который сразу же сделал текст появится в окне я сделал. Маленький стиль сделал текст правильным, где я хотел, но это все.
Спасибо много людей и считает это решаются :)
Итак, когда вы добавить свой текст как 'Content' в TextBox, где в шаблоне является вашим 'Content' обрабатывается? Сравните ваши с дефолтом, я бы поспорил, что вы быстро заметили свою глупость. :) –