我在Path-Element上创建了一个TextBox(Path Element绘制了一个矩形的东西,它充当了文本框的设计)。现在我想用
禁用这个TextBoxvalCon.ValueTextBox.IsEnabled = false;
到目前为止这是有效的。但是,由于我不希望TextBox有任何样式(没有颜色,没有边框等),但只有一个可见的文本,我遇到了一个小问题:
当禁用TextBox时,它会自动收到我无法摆脱的样式。背景变为白色,不透明度变为0.3左右,并出现边框。
我似乎无法通过添加
来解决这个问题valcon.ValueTextBox.Background = new SolidColorBrush(Colors.Transparent);
valcon.ValueTextBox.BorderBrush = new SolidColorBrush(Colors.Transparent);
等
似乎忽略了这一点。有谁知道解决方案?
问候 Narakuvera
答案 0 :(得分:1)
您需要控制模板才能实现相同的
这里是一个基本模板,没有边框,没有背景TextBox
<TextBox Text="hello">
<TextBox.Template>
<ControlTemplate TargetType="TextBox">
<ScrollViewer Margin="0"
x:Name="PART_ContentHost" />
</ControlTemplate>
</TextBox.Template>
</TextBox>
您可以选择设置IsEnabled="False"
,它仍然会保持较少的边框
代码隐藏方法
ControlTemplate ct = new ControlTemplate(typeof(TextBox));
FrameworkElementFactory sv = new FrameworkElementFactory(typeof(ScrollViewer));
sv.Name = "PART_ContentHost";
ct.VisualTree = sv;
textbox1.Template = ct;
WinRT代码隐藏方法
string template = "<ControlTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" TargetType=\"TextBox\"><ScrollViewer Name=\"PART_ContentHost\" /></ControlTemplate>";
ControlTemplate сt = (ControlTemplate)XamlReader.Load(template);
textbox1.Template = сt;