我有一个用户控件,其中包含这样的元素
<UserControl
x:Class="App2.MyImageControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App2"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400">
<Grid x:Name="MyGrid" x:FieldModifier="public" ManipulationMode="None" Tapped="MyGrid_Tapped" HorizontalAlignment="Left" VerticalAlignment="Top" >
<Grid.RenderTransform>
<CompositeTransform></CompositeTransform>
</Grid.RenderTransform>
<Border x:Name="MyBorder" x:FieldModifier="public" BorderThickness="1" BorderBrush="Transparent" Width="auto" Height="auto">
<Grid>
<Image x:Name="MyImageO" x:FieldModifier="public" Source="" Width="auto" Height="auto" Stretch="Fill"></Image>
</Grid>
</Border>
</Grid>
我想在运行时将MyBorder的宽度和高度绑定到MyImageO宽度和高度的一半。我该如何实现。
答案 0 :(得分:1)
您可以尝试使用MultiplyConverter
将绑定值转换为其中的一半,但ActualWidth
和ActualHeight
不可绑定 - 它们不会引发更改通知。您最好的办法是简单地处理SizeChanged
个事件,然后根据图片的ActualWidth
和ActualHeight
设置边框的尺寸。