为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 XAML 中重复编程行?

如何在 XAML 中重复编程行?

PHP
斯蒂芬大帝 2024-01-20 16:12:35
...术语“编程行”是指代码的一部分。我目前正在使用 c# 和 XAML 创建 UI。但 XAML 代码变得越来越长,因此我意识到,如果我能够以某种方式在代码内部设置或单独存储代码的可重复部分并在每次需要时使用它们,则整个 XAML 代码将会更短、更清晰。例如,假设我有一个特定的标签,我想在代码的几个点中重复该标签:  <Label Name="myLabel" Content="something">   </Label>我如何才能在 XAML 代码中应用并重复该标签?
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

有一个简单的示例,说明如何在不同的视图/窗口之间共享 XAML 代码。创建一个ResourceDictionary,定义共享属性/样式/控件模板,如下所示


<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style TargetType="{x:Type Label}">

        <Setter Property="Foreground" Value="Black" />

        <Setter Property="FontFamily" Value="Segoe UI" />

    </Style>

    <Style TargetType="{x:Type Button}">

        <Setter Property="Foreground" Value="Black" />

        <Setter Property="FontFamily" Value="Segoe UI" />

    </Style>

    <Style TargetType="{x:Type TextBox}">

        <Setter Property="Foreground" Value="Black" />

        <Setter Property="FontFamily" Value="Segoe UI" />

    </Style>

    <Style TargetType="{x:Type ScrollBar}">

        <Setter Property="Foreground" Value="Black" />

        <Setter Property="FontFamily" Value="Segoe UI" />

    </Style>

    <Style TargetType="Label" x:Key="TitleStyle" BasedOn="{StaticResource {x:Type Label}}">

        <Setter Property="HorizontalContentAlignment" Value="Center"/>

        <Setter Property="VerticalContentAlignment" Value="Center" />

        <Setter Property="HorizontalAlignment" Value="Stretch" />

        <Setter Property="VerticalAlignment" Value="Stretch"/>

        <Setter Property="FontSize" Value="16" />

    </Style>

</ResourceDictionary>

您可以将此字典添加到应用程序/窗口MergedDictionaries来使用它们,例如


<Window.Resources>

    <ResourceDictionary>

        <ResourceDictionary.MergedDictionaries>

            <ResourceDictionary Source="Styles.xaml"/>

        </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>

</Window.Resources>

请注意,这只是一个简单的例子来简要解释这个想法。您还可以查看Style.TargetType文档以查看样式之间TargetTypex:Key样式中的解释



查看完整回答
反对 回复 2024-01-20
  • 1 回答
  • 0 关注
  • 82 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信