绑定到其他元素(高度减去5px)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绑定到其他元素(高度减去5px)相关的知识,希望对你有一定的参考价值。

以下代码是okey。

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="Window1"
    x:Name="Window1" Title="Window1" 
    Height="200" Width="300">

<Grid>
    <DockPanel LastChildFill="False">
        <Rectangle DockPanel.Dock="Top" Height="{Binding ElementName=Button1, Path=Height}"  Width="70" Fill="Yellow"></Rectangle>
        <Button x:Name="Button1" DockPanel.Dock="Bottom" Background="Red" Height="50" Width="70"/>
    </DockPanel>
</Grid>
</Window>

以下代码需要修复。

<Rectangle DockPanel.Dock="Top" Height="Button1.Height-5px"  Width="70" Fill="Yellow"></Rectangle>
答案

我不确定你想要获得什么,但我想要获得高度 - 5,只需使用转换器绑定。

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:younamespace"
    x:Class="Window1"
    x:Name="Window1" Title="Window1" 
    Height="200" Width="300">
<Window.Resources>
<local:RactangleHeightConverters x:Key="NameConverter"/>
</Window.Resources>   
<Grid>
    <DockPanel LastChildFill="False">
         <Rectangle DockPanel.Dock="Top" Height="{Binding ElementName=Button1, Path=Height,Converter={StaticResource NameConverter}}"  Width="70" Fill="Yellow"></Rectangle>
        <Button x:Name="Button1" DockPanel.Dock="Bottom" Background="Red" Height="50" Width="70"/>
    </DockPanel>
</Grid>
</Window>

更多信息http://www.c-sharpcorner.com/UploadFile/87b416/wpf-value-converters/

使用工具“IValueConverter”创建类

using System;  

namespace ValueConverters  
{  
    class RactangleHeightConverters:IValueConverter  
    {  
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)  
        {  
            return value - 5;
        }  

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)  
        {  
           return null;
        }  
    }  
}  

以上是关于绑定到其他元素(高度减去5px)的主要内容,如果未能解决你的问题,请参考以下文章

实用代码片段将json数据绑定到html元素 (转)

将元素高度/宽度设置为百分比和像素值的组合[重复]

使用绑定从片段访问父活动的 UI 元素

QML ListView:检测到属性“高度”的绑定循环

scrollTop总是为0

为一个元素设置长度(高度或宽度)减去另一个元素的可变长度,即 calc(x - y),其中 y 未知