固定テキストをTextBoxに動的に追加するにはどうすればよいですか? 「固定テキスト」とは、ユーザーの入力では削除できないテキストを意味します。例えばTextBoxの固定テキスト
、CMDでのパス:
C:\Program Files>cd ..
C:\>
固定テキストをTextBoxに動的に追加するにはどうすればよいですか? 「固定テキスト」とは、ユーザーの入力では削除できないテキストを意味します。例えばTextBoxの固定テキスト
、CMDでのパス:
C:\Program Files>cd ..
C:\>
のTextBox IsReadOnlyの=真のあなたは動的にテキストを読み込むとき? MVVMバインドIsReadOnlyをViewModelのプロパティに使用すると、ViewModelによってテキストが入力されるとき
代わりにテキストブロックを使用できます。 テキストボックスを使用する必要がある場合は、読み取り専用でIsReadOnlyプロパティを「True」に変更することができます。
私は編集可能なテキストボックスが必要であると仮定しています。ユーザーは編集できません。もしそうなら、これは動作しているようです - Blendで抽出されたとして、それが標準のテキストボックスのスタイルに基づいています...
あなたのXAMLのルートに次の名前空間宣言を持っている必要があります:
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
は、このテンプレートを使用します:
<ControlTemplate TargetType="{x:Type TextBox}">
<Microsoft_Windows_Themes:ListBoxChrome x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" RenderMouseOver="{TemplateBinding IsMouseOver}" RenderFocused="{TemplateBinding IsKeyboardFocusWithin}" SnapsToDevicePixels="true">
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center">This is fixed:</TextBlock>
<ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</StackPanel>
</Microsoft_Windows_Themes:ListBoxChrome>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
カスタムコントロールまたはユーザーコントロールでこれをラップする場合は、プログラムで固定テキストをカスタムプロパティで設定できます。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (textBox1.SelectionStart < LengthOfFixedString)
e.SuppressKeyPress = true;
}
これにはいくつかの欠点があります。マウスを使って切り取り/削除を停止することはなく、ユーザーが固定テキストにカーソルを置くとカーソルが再び戻ってくることはありません。 –
Huh? IsReadOnlyまたはIsEnabledプロパティを使用して、ユーザーが値を変更できないようにすることができます。理解しやすいように質問を言い換える必要があります。また、試したことと結果が何であるかを列挙する必要があります。 –
それで、ユーザーが追加できるテキストボックスにテキストを固定したいのですか? – carny666