如何将矩形的边距绑定到顶部/底部和左侧/右侧的两个滑块

用户名

我正在尝试制作一个wpf程序,其中有一个矩形,顶部有两个滑块:

项目截图

第一个滑块更改矩形的左/右边缘,而右滑块更改上/下边缘,因此看起来矩形越来越大。但是,如果更改窗口大小,则矩形正在调整。

这是我的代码:

<Window x:Class="Rechteck.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        >
    <Grid>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="50*"/>
                <ColumnDefinition Width="50*"/>
            </Grid.ColumnDefinitions>

            <TextBlock Grid.Column="0" HorizontalAlignment="Center">Rand top/bottom</TextBlock>
            <Slider Grid.Column="0"
              x:Name="MySlider" 
              VerticalAlignment="Top" 
              Minimum="10" 
              Maximum="300" 
              Value="150" 
              Margin="10" />

            <TextBlock Grid.Column="1" HorizontalAlignment="Center">Rand left/right</TextBlock>
            <Slider Grid.Column="1"
                x:Name="MySlider2" 
                VerticalAlignment="Top" 
                Minimum="10" 
                Maximum="300" 
                Value="150" 
                Margin="10" />
        </Grid>

        <Grid>
            <Rectangle x:Name="rechteck"          
            Width="300" 
            Height="300"
            Margin="{Binding ElementName=MySlider2, Path=Value}"
            Fill="black"
            VerticalAlignment="Center"
            HorizontalAlignment="Center" />
        </Grid>
    </Grid>
</Window>
dkozl

如果你希望你Rectangle保持其大小,当Window被调整,然后,而不是结合Margin,并保持WidthHeight固定它们绑定到适当的Slider

<Rectangle 
    x:Name="rechteck"          
    Width="{Binding ElementName=MySlider2, Path=Value}"
    Height="{Binding ElementName=MySlider, Path=Value}"
    Fill="black"
    VerticalAlignment="Center"
    HorizontalAlignment="Center"/>

编辑

如果你想Rectangle适应Window大小的话就不要设置固定Width/HeightHorizontalAlignment/VerticalAlignment只有绑定Margin通过自定义IMultiValueConverter

public class MarginConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        return new Thickness((double)values[0], (double)values[1], (double)values[0], (double)values[1]);
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

并更改Grid如下:

<Window ... xmlns:local="clr-namespace:Namespace.For.MarginConverter">
    <Grid>
        <Grid.Resources>
            <local:MarginConverter x:Key="MarginConverter"/>
        </Grid.Resources>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50*"/>
            <ColumnDefinition Width="50*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <TextBlock Grid.Column="0" HorizontalAlignment="Center">Rand top/bottom</TextBlock>
        <Slider Grid.Column="0"
              x:Name="MySlider" 
              VerticalAlignment="Top" 
              Minimum="10" 
              Maximum="300" 
              Value="150" 
              Margin="10" />

        <TextBlock Grid.Column="1" HorizontalAlignment="Center">Rand left/right</TextBlock>
        <Slider Grid.Column="1"
                x:Name="MySlider2" 
                VerticalAlignment="Top" 
                Minimum="10" 
                Maximum="300" 
                Value="150" 
                Margin="10" />
        <Rectangle Grid.Row="1" Grid.ColumnSpan="2" x:Name="rechteck" Fill="black">
            <Rectangle.Margin>
                <MultiBinding Converter="{StaticResource MarginConverter}">
                    <Binding ElementName="MySlider2" Path="Value"/>
                    <Binding ElementName="MySlider" Path="Value"/>
                </MultiBinding>
            </Rectangle.Margin>
        </Rectangle>
    </Grid>
</Window>

我已经把Rectangle相同的底行Grid具有Slider否则它可能覆盖你的控件时,利润率变得接近0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CSS边距符号(顶部,右侧,底部,左侧)

来自分类Dev

内部元素顶部/底部和左侧/右侧的CSS边距差异

来自分类Dev

如何以复杂的布局将一页中的两个部分对齐到顶部和底部?

来自分类Dev

如何将Flutter Chip小部件的顶部和底部边距设置为零?

来自分类Dev

重新缩放矩形(顶部,左侧,底部,右侧)

来自分类Dev

WPF将两个变量绑定到边距

来自分类Dev

如何裁剪图像的顶部,左侧,底部和右侧边界?

来自分类Dev

如何设置边距顶部和左侧自动?

来自分类Dev

如何将文本区域的标签对齐到顶部和右侧?

来自分类Dev

如何将文本区域的标签对齐到顶部和右侧?

来自分类Dev

如何使两个div顶部和底部

来自分类Dev

如何将图形的标题从底部移动到顶部?

来自分类Dev

如何将两个带有边距的文本字段放在一行中?

来自分类Dev

如何将两个面板的一侧与顶部和填充的停靠属性重叠?

来自分类Dev

如何将两个SVG的顶部彼此相邻?

来自分类Dev

我如何检测子元素在jquery中的父元素(顶部,左侧,右侧和底部)溢出?

来自分类Dev

iOS:如何在4面(顶部,右侧,底部和左侧)为UIView制作阴影

来自分类Dev

如何使用JavaScript计算框的宽度和高度形式的CSS属性(顶部,底部,左侧,右侧)

来自分类Dev

如何在桌面屏幕外部的顶部,底部,右侧和左侧固定空白?

来自分类Dev

在图像的顶部,右侧,底部和左侧对齐文本?

来自分类Dev

如何消除UITableView左侧的边距,而在右侧不留间隙?

来自分类Dev

如何消除UITableView左侧的边距,而在右侧不留缝隙?

来自分类Dev

将两个div固定到另一个div的底部和顶部

来自分类Dev

边距设置为自动时,如何将div的左侧分配到屏幕的左侧?

来自分类Dev

当两个div都使用自动边距居中时,如何将一个div放在另一个之上?

来自分类Dev

如何将WPF控件的边距绑定到属性?

来自分类Dev

HTML 将单个背景图像拆分为两个相等的链接(顶部和底部)

来自分类Dev

如何在div上创建两个滚动条作为顶部和底部?

来自分类Dev

如何在div上创建两个滚动条作为顶部和底部?

Related 相关文章

  1. 1

    CSS边距符号(顶部,右侧,底部,左侧)

  2. 2

    内部元素顶部/底部和左侧/右侧的CSS边距差异

  3. 3

    如何以复杂的布局将一页中的两个部分对齐到顶部和底部?

  4. 4

    如何将Flutter Chip小部件的顶部和底部边距设置为零?

  5. 5

    重新缩放矩形(顶部,左侧,底部,右侧)

  6. 6

    WPF将两个变量绑定到边距

  7. 7

    如何裁剪图像的顶部,左侧,底部和右侧边界?

  8. 8

    如何设置边距顶部和左侧自动?

  9. 9

    如何将文本区域的标签对齐到顶部和右侧?

  10. 10

    如何将文本区域的标签对齐到顶部和右侧?

  11. 11

    如何使两个div顶部和底部

  12. 12

    如何将图形的标题从底部移动到顶部?

  13. 13

    如何将两个带有边距的文本字段放在一行中?

  14. 14

    如何将两个面板的一侧与顶部和填充的停靠属性重叠?

  15. 15

    如何将两个SVG的顶部彼此相邻?

  16. 16

    我如何检测子元素在jquery中的父元素(顶部,左侧,右侧和底部)溢出?

  17. 17

    iOS:如何在4面(顶部,右侧,底部和左侧)为UIView制作阴影

  18. 18

    如何使用JavaScript计算框的宽度和高度形式的CSS属性(顶部,底部,左侧,右侧)

  19. 19

    如何在桌面屏幕外部的顶部,底部,右侧和左侧固定空白?

  20. 20

    在图像的顶部,右侧,底部和左侧对齐文本?

  21. 21

    如何消除UITableView左侧的边距,而在右侧不留间隙?

  22. 22

    如何消除UITableView左侧的边距,而在右侧不留缝隙?

  23. 23

    将两个div固定到另一个div的底部和顶部

  24. 24

    边距设置为自动时,如何将div的左侧分配到屏幕的左侧?

  25. 25

    当两个div都使用自动边距居中时,如何将一个div放在另一个之上?

  26. 26

    如何将WPF控件的边距绑定到属性?

  27. 27

    HTML 将单个背景图像拆分为两个相等的链接(顶部和底部)

  28. 28

    如何在div上创建两个滚动条作为顶部和底部?

  29. 29

    如何在div上创建两个滚动条作为顶部和底部?

热门标签

归档