c# - 带有 WPF 内部样式和文本 block 的矩形

标签 c# .net wpf xaml

我想为矩形创建样式或模板。这些属性非常肤浅:更改了背景颜色、半径。

此外,我想在矩形内添加文本。

我找到了很多例子,但没有一个最符合我的需要。是否可以创建一个模板,以我只需要调用的方式在内部绘制矩形和文本

<Rectangle template={StaticRessources myBox}/>

并且应用了定义的模板?到目前为止,文本没有在矩形内对齐:

<ControlTemplate x:Key="greenBoxTemplate">
        <Grid>
            <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="25" Text="Hello World" TextWrapping="Wrap"/>
            <Rectangle Height="100" HorizontalAlignment="Left" Margin="233,144,0,0" Name="BNU2" Style="{StaticResource greenBox}" Stroke="Black" VerticalAlignment="Top" Width="200"/>
        </Grid>
    </ControlTemplate>

就其值(value)而言,模板应用于按钮,但实际上我想将它应用于不起作用的矩形。

最佳答案

您需要的是 Decorator .已经有一个似乎非常适合您:Border

如果你想为具有某些预定义值的元素设置循环边框,你可以创建如下样式:

<Style TargetType="Border" x:Key="MyBorderStyle">
    <Setter Property="Background" Value="Red"/>
    <Setter Property="CornerRadius" Value="3px"/>
</Style>

并像这样应用它:

<Border Style="{StaticResource MyBorderStyle}">
    <TextBlock>Hello World</TextBlock>
</Border>

关于c# - 带有 WPF 内部样式和文本 block 的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5377309/

相关文章:

c# - 在 .NET 中循环遍历 XML?

c# - 我可以在 C# 库中有全局预处理器定义吗?

c# - 如何使用 Linq-To-Sql 在同一查询中进行 TOP、ORDER BY 和 DISTINCT?

c# - 在 C# 中更改子文件夹的权限

c# - 获取面板中的鼠标位置(当鼠标悬停在另一个UIElement上时)到ViewModel

wpf - 在运行时构建 wpf Ribbon

c# - 在哪里可以找到免费的 C# 电子书?

c# - 来自 c# asp.net webforms 中数据表的自定义 JSON 数据

.net - 使用 ASP.net WEB API 进行交易

wpf - 如何在WPF中将鼠标悬停时更改图像?