我在代码中有几个带有标签的文本框,这些文本框使用以下XAML实现:
<DockPanel HorizontalAlignment="Right">
<TextBlock Foreground="Black" Padding="0,0,10,0">Serial Number:</TextBlock>
<TextBox Width="150" IsReadOnly="True" BorderBrush="Gainsboro" Height="20"></TextBox>
</DockPanel>
我可以通过类似以下的方式减少一些复制的代码:
<DockPanel HorizontalAlignment="Right">
<TextBlock Style="{StaticResource CstmTextBoxLbl}">Serial Number:</TextBlock>
<TextBox Style="{StaticResource CstmTextBox}"></TextBox>
</DockPanel>
但是它仍然有点冗长。是否可能这样做:
<controls:CstmTextBox Style="{StaticResource CstmTextBox}" LabelText="Serial Number:" Text=""/>
在这种情况下,CstmTextBox
将实现所需的任何XAML,以便一次性获得相同的视觉效果,并且我可以在代码中访问TextBlock
文本和TextBox
文本。例如:
CstmTextBox textbox;
textbox.LabelText = "Serial Number:";
String some_text = textbox.Text;
textbox.Text = "....";