WPF - Margin in percentage

2019-02-14 05:34发布

I have just started using WPF. I'm getting my head around styling system since. I come from a CSS background and I would like to set margin in percentage.

    <Style TargetType="TextBlock" x:Key="workflowNameTextBlock">            
        <Setter Property="Margin" Value="50"/>            
    </Style>

Currently value is set in pixels, but I would like to set it in %, i.e. 50%.

How can I achive this?

Thank you

2条回答
Emotional °昔
2楼-- · 2019-02-14 06:01

Here's how you implement 20% left and right margins in WPF:

<Grid>
   <Grid.ColumnDefinitions>
      <ColumnDefinition Width="2*"/>
      <ColumnDefinition Width="6*"/>
      <ColumnDefinition Width="2*"/>
   </Grid.ColumnDefinitions>
   <TextBlock Grid.Column="1" Text="Hello, world."/>
</Grid>

This may seem ridiculously verbose if what you're trying to do is re-implement a simple CSS layout in WPF, but that's because implementing simple CSS layouts is really not the problem space WPF is designed around.

查看更多
Melony?
3楼-- · 2019-02-14 06:13

Instead of using Margin, you can do this via a Grid.

Just place your control within a Grid element, and use 3 columns and 3 rows. The column/row sizing can be done as percentages of the containing element.

查看更多
登录 后发表回答