所以在这里,我在wpf中创建了一个c#项目,并且我试图用一行文本框来创建文本框。用划线划分文本框中的单独文本?
目前,我得到这样的文本框:
而不是使用“-------”我想在文本框中预定义线。这可能吗 ?
Agg。文本框在运行时
绘制的线条编辑应具备的特性:
- 它不应该被编辑能!
- 它不仅应该是一个空行
- 它应该是一个可见的行宽度为
line.width = box.width
!
所以在这里,我在wpf中创建了一个c#项目,并且我试图用一行文本框来创建文本框。用划线划分文本框中的单独文本?
目前,我得到这样的文本框:
而不是使用“-------”我想在文本框中预定义线。这可能吗 ?
Agg。文本框在运行时
绘制的线条编辑应具备的特性:
line.width = box.width
!如果你不需要一个完整的文本框实现,那么这可能会有所帮助。它没有显示光标等,但它可能会给你一个开始。
第一下转换器添加到您的项目。
public class TextLineConverter : MarkupExtension, IValueConverter
{
static TextLineConverter converter;
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string[] results = null;
string newText = value as string;
if (newText != null)
{
results = newText.Split('\r');
if (results.Length > 0)
for (int i = 0; i < results.Length; i++)
if (results[i].Length > 0)
if (results[i][0] == '\n')
results[i] = results[i].Substring(1, results[i].Length - 1);
}
return results;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
if (converter == null) converter = new TextLineConverter();
return converter;
}
public TextLineConverter()
{
}
}
和下面的样式。
<Style TargetType="TextBox">
<Style.Resources>
<Style TargetType="ListViewItem">
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderThickness="0,0,0,2" BorderBrush="Black" >
<ContentPresenter Content="{Binding}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Style.Resources>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TextBox">
<ListView Focusable="False" ItemsSource="{Binding Text, Converter={local:TextLineConverter}, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource TemplatedParent}}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在重读您的问题时,我相信最好的方法是创建您自己的用户控件,该控件具有专门用于此目的的属性。做一些关于C#用户控件的研究,也许你会发现如何做到这一点。
嘿嘿,那不是我正在寻找的,而是我必须说的一个聪明而简单的答案。 我想在“-----”的位置“画”一条可见的黑线。 \ n \ n只是一个“空”的行。 – Anonymous
拆分文本?那是什么意思?根据什么拆分?两部分?这是三个部分。 – Paparazzi
我的文章是将文本框中的文本分开的黑色线条。 在这种情况下,两条分隔线 – Anonymous
@ user1735774为什么不是列表框? –