考慮下面的XAML的尺寸:WPF約束畫布的大小調整子對象到畫布
<Window x:Class="AdornerTesting.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="500" Width="500"
Loaded="Window_Loaded">
<Grid Name="grid">
<Canvas Name="canvas" Width="400" Height="400" Background="LightGoldenrodYellow">
<RichTextBox Name="richTextBox" Canvas.Top="10" Canvas.Left="10" BorderBrush="Black" BorderThickness="2"
Width="200"
Height="200"
MaxWidth="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Canvas}},Path=ActualWidth}"
MaxHeight="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Canvas}},Path=ActualHeight}"/>
</Canvas>
</Grid>
</Window>
和一組裝飾器被添加到RichTextBox中的Loaded事件,像這樣:
AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(richTextBox);
adornerLayer.Add(new ResizeAdorner(richTextBox));
我該如何防止在Canvas的可見範圍之外調整RichTextBox的大小?
ResizeAdorner本質上是可以在MSDN adorner示例中找到的相同的代碼,它工作得很好。我是否應該在代碼隱藏中使用MaxWidth和MaxHeight的綁定來計算RichTextBox的可調整大小?或者有沒有辦法在XAML中做到這一點?
是,在0改變控制的初始位置, 0在canva上s會將拖動向右和向下拖到畫布的邊緣。我當時遇到的問題以及我原來的問題中沒有提到的,就是左右調整大小。不知道我怎麼沒有把這個問題放在最初的問題上,但我沒有。事實證明,這是我在那些被責怪的方向調整大小的代碼。感謝XAML綁定的提示,綁定的東西有時會拋出我。 – Scott 2010-04-15 17:07:13