我正在尝试创建一个反射效果,除了我必须硬编码一些值之外,它工作得很好。这是我的XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition />
<RowDefinition Height="80"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="1" VerticalAlignment="Center">
<UserControl x:Name="CurrentPresenter" />
<Border Width="500" Height="200" >
<Border.Background>
<VisualBrush Visual="{Binding ElementName=CurrentPresenter}" >
<VisualBrush.Transform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="-1" CenterX="500" CenterY="99" />
</TransformGroup>
</VisualBrush.Transform>
</VisualBrush>
</Border.Background>
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,0.6">
<GradientStop Offset="-0.6" Color="Black"></GradientStop>
<GradientStop Offset="0.6" Color="Transparent"></GradientStop>
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
</StackPanel>
</Grid>
我已经尝试用
Width="{Binding ElementName=CurrentPresenter, Path=Width}"
和Height="{Binding ElementName=CurrentPresenter, Path=Height}"
替换Border的Width="500"
和Height="200"
,但似乎不起作用。
这段代码有什么问题吗?
更新:如果我在此处设置宽度和高度:
<UserControl x:Name="CurrentPresenter" Height="200" Width="500" />
它按预期工作。但是,如果我在UserControl XAML中设置这些值,它就不起作用。有什么想法吗?