[英]WPF- Aligning content in an itemscontrol
我在滾動查看器內部有一個itemscontrol,隨着元素越來越靠近屏幕中心,它會變得更大。 問題是,當它變大時,它的左上角被鎖定到位,看起來像這樣。
我希望它看起來像這樣,但是我不知道如何去做。
編輯:添加了xaml信息,如果需要,請詢問C#(盡管我對此表示懷疑)
<TextBlock Name="text2" Text="hello" Margin="0,15,0,-10"/>
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled" Height="300" Name="Viewr" Canvas.Top="120" ScrollChanged="Viewr_ScrollChanged">
<ItemsControl Name="viewrcontent">
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Orange" Name="hellobox"/>
<Canvas Width="100" Height="100" Background="Green" Name="midbox"/>
<Canvas Width="100" Height="100" Background="Black"/>
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Red"/>
<Canvas Width="100" Height="100" Background="Black"/>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="FrameworkElement.Margin" Value="5"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" CanHorizontallyScroll="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
如果將ScaleTransform
用作RenderTransform
來縮放項目,則可以將RenderTransformOrigin
設置為0.5,0.5
,這將強制項目圍繞其中心縮放。
我認為您可以在后面的代碼中編輯邊距,以獲取所需的行為。 這樣的事情可能會起作用:
midbox.Width += 10;
midbox.Height += 10;
midbox.Margin = new Thickness(midbox.Margin.Left - 5, midbox.Margin.Top, midbox.Margin.Right - 5, midbox.Margin.Bottom);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.