Created
April 24, 2016 14:09
-
-
Save tmyt/5709370f815821283e9b758079c28233 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using System.Threading.Tasks; | |
using System.Windows; | |
using System.Windows.Controls; | |
using System.Windows.Media; | |
using System.Windows.Threading; | |
namespace WpfApplication2 | |
{ | |
public class CustomTextBox : TextBox | |
{ | |
public override void OnApplyTemplate() | |
{ | |
// call base method | |
base.OnApplyTemplate(); | |
// override design | |
var stackpanel = (StackPanel)GetTemplateChild("stackpanel"); | |
stackpanel.MouseDown += (sender, args) => | |
{ | |
SelectionStart = Text.Length; | |
SelectionLength = 0; | |
}; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Window x:Class="WpfApplication2.MainWindow" | |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |
xmlns:local="clr-namespace:WpfApplication2" | |
mc:Ignorable="d" | |
Title="MainWindow" Height="350" Width="525"> | |
<Window.Resources> | |
<SolidColorBrush x:Key="TextBox.Static.Border" Color="#FFABAdB3"/> | |
<SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/> | |
<SolidColorBrush x:Key="TextBox.Focus.Border" Color="#FF569DE5"/> | |
<Style x:Key="TextBoxStyle1" TargetType="{x:Type TextBox}"> | |
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/> | |
<Setter Property="BorderBrush" Value="{StaticResource TextBox.Static.Border}"/> | |
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> | |
<Setter Property="BorderThickness" Value="1"/> | |
<Setter Property="KeyboardNavigation.TabNavigation" Value="None"/> | |
<Setter Property="HorizontalContentAlignment" Value="Left"/> | |
<Setter Property="FocusVisualStyle" Value="{x:Null}"/> | |
<Setter Property="AllowDrop" Value="true"/> | |
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/> | |
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/> | |
<Setter Property="Template"> | |
<Setter.Value> | |
<ControlTemplate TargetType="{x:Type TextBox}"> | |
<Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"> | |
<StackPanel Orientation="Horizontal" Cursor="IBeam" x:Name="stackpanel" Background="Transparent"> | |
<ScrollViewer x:Name="PART_ContentHost" Focusable="false" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" /> | |
<TextBlock Text=".slack.com" IsHitTestVisible="False"/> | |
</StackPanel> | |
</Border> | |
<ControlTemplate.Triggers> | |
<Trigger Property="IsEnabled" Value="false"> | |
<Setter Property="Opacity" TargetName="border" Value="0.56"/> | |
</Trigger> | |
<Trigger Property="IsMouseOver" Value="true"> | |
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.MouseOver.Border}"/> | |
</Trigger> | |
<Trigger Property="IsKeyboardFocused" Value="true"> | |
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource TextBox.Focus.Border}"/> | |
</Trigger> | |
</ControlTemplate.Triggers> | |
</ControlTemplate> | |
</Setter.Value> | |
</Setter> | |
<Style.Triggers> | |
<MultiTrigger> | |
<MultiTrigger.Conditions> | |
<Condition Property="IsInactiveSelectionHighlightEnabled" Value="true"/> | |
<Condition Property="IsSelectionActive" Value="false"/> | |
</MultiTrigger.Conditions> | |
<Setter Property="SelectionBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/> | |
</MultiTrigger> | |
</Style.Triggers> | |
</Style> | |
</Window.Resources> | |
<Grid> | |
<local:CustomTextBox VerticalAlignment="Center" Style="{StaticResource TextBoxStyle1}"/> | |
</Grid> | |
</Window> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment