wpf 如何更改用户控件中标签的文本

yyhrrdl8  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(255)

我刚开始做一个WPF项目。我对XAML一点经验都没有。以前的项目都是Windows窗体。
所以归结到我的问题:如何更改用户控件内标签的文本?所讨论的用户控件如下:

此栏将在应用程序中的所有窗口(不包括主窗口)上重用。页眉标签是我要更改的内容。最好通过XAML更改此文本。以下是该控件的代码:

<Grid x:Name="TopBar" VerticalAlignment="Center" Height="20" Background="#FF3C3C3C" MouseLeftButtonDown="TopBar_LeftMouseDown">
   <Label x:Name="Header_L" x:FieldModifier="public" Content="Header" Foreground="#FFF2F2F2" HorizontalAlignment="Left" Padding="5,0,5,0" />
   <Classes:PL_Button x:Name="Close_B" Style="{StaticResource customButton}" bgColor="#FF3C3C3C" hoverColor="#FF464646" mouseDownColor="#FF373737" Width="24" Height="18" HorizontalAlignment="Right" Click="Close_B_Click" Margin="0,0,2,0">
      <Image Source="/Resources/Close_Icon.png" Height="12" Width="12"/>
   </Classes:PL_Button>
</Grid>

在新窗口中,控件如下所示:

...注意:我不确定为什么设计器中缺少关闭按钮,但在运行应用程序时它是可见的...
下面是显示条形图的XAML。

<Grid x:Name="Window_Grid">
    <Controls:PL_TopBar_Control VerticalAlignment="Top"/>
</Grid>

如果可能的话,我想在这里设置标题文本。从长远来看,这会让我的生活更轻松。添加“Content=“Some text”“确实会添加文本,但不会更改实际的标题标签。我做了一些搜索,但大多数结果都涉及在运行时或通过代码进行更改(也许我没有搜索到正确的内容?)

<Controls:PL_TopBar_Control VerticalAlignment="Top"/>

如果可能的话,我想更改上面一行中的标签文本。
谢谢

nzk0hqpo

nzk0hqpo1#

好的,经过一些尝试,我设法找到了一个解决方案。在用户控制代码(C#)中,我需要以下内容:

public string? LabelContent
    {
        get => Header_L.Content as string;
        set => Header_L.Content = value;
    }

然后在XAML中,当我使用控件时,我只需要使用LabelContent来设置标签文本。如下所示:

<Grid x:Name="Window_Grid">
    <Controls:PL_TopBar_Control VerticalAlignment="Top" LabelContent="Some Text"/>
</Grid>

结果:

XAML需要一些时间来适应...

相关问题