[英]wpf UserControl get and set values
我有一个用户控件
<UserControl x:Class="NeocClinic.WPFSystem.Templatas.LoggedAsUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" BorderBrush="White" BorderThickness="0,0,0,1" >
<StackPanel Name="StackHeader">
<Grid ShowGridLines="False" >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Name="tbLoggedAs" Text="Logged As:" Grid.Column="5" Grid.Row="0" FontWeight="Normal" FontSize="14"/>
<TextBlock Name="tbLogOut" Text="Log Out" Grid.Column="5" Grid.Row="1" FontWeight="Normal" FontSize="14" Cursor="Hand" MouseDown="tbLogOut_MouseDown"/>
</Grid>
</StackPanel>
</UserControl>
现在我想将tbLoggedAs.Text设置为记录器的用户名。
问题是,除非我创建了该用户控件的实例,否则我无法在代码中找到该用户控件或tbLoggedAs,但这是否意味着它将与以表格形式部署的用户控件是一个不同的对象?
顺便说一句,我要设置的值已经完成,检索User对象。 另外,我想获取tbLoggedAs的文本并将其用作对我的CreatedBy字段的引用,但是就像我说的那样,我无法在代码中找到它,intellisense并未显示它们。
还有,有什么方法可以使FontSize灵活? 我的意思是每当我调整窗体大小时,控件的大小都会变化,但fontsize会停滞。
您需要在此处使用绑定,以便可以将文本框绑定到相应的属性
例
假设您在主视图模型中有一个名为LoggedInUser的属性或后面的代码
<TextBlock Name="tbLoggedAs" Text="{Binding LoggedInUser, StringFormat=Logged As: {0}" Grid.Column="5" Grid.Row="0" FontWeight="Normal" FontSize="14"/>
有关应用于Text属性的绑定的说明
因此,如果您将视图模型用作数据上下文,那么它将起作用,否则,您可以在后面包含LoggedInUser属性的代码中分配数据上下文
例如。
DataContext = this;
对于字体大小,您可能在视图模型中具有另一个属性,该属性将根据应用程序大小进行计算并绑定到字体大小
例如
FontSize="{Binding FontSize}"
其余的绑定框架将为您处理
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.