![](/img/trans.png)
[英]XAML Layout- how to add a WebKitBrowser below buttons inside a <Grid>
[英]How to group controls inside Grid for reuse in XAML?
在我的應用程序中,我有一些控件在邏輯上屬於同一控件,並且可以在不同窗口中的許多地方重復使用。 控件始終放置在網格內。
我不想每次使用它們時都復制控件(及其背后的代碼),而是希望將它們作為單個UserControl定義和維護在單個xaml文件中。
我現在有這個:
<Grid>
<Grid.ColumnDefinitions>
[ColumnDefinitions...]
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
[RowDefinitions...]
</Grid.RowDefinitions>
<StackPanel Grid.Column="0" Grid.Row="0">
<TextBlock Text="Caption" />
<Border Padding="2" x:Name="myBorder">
<TextBox TabIndex="1" x:Name="myTxt"/>
</Border>
</StackPanel>
<ListBox x:Name="myList" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Margin="5,50,5,0" Height="100" VerticalAlignment="Top" Visibility="Collapsed" />
[More controls..]
</Grid>
但我想重用這一部分:
<StackPanel Grid.Column="0" Grid.Row="0">
<TextBlock Text="Caption" />
<Border Padding="2" x:Name="myBorder">
<TextBox TabIndex="1" x:Name="myTxt"/>
</Border>
</StackPanel>
<ListBox x:Name="myList" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Margin="5,50,5,0" Height="100" VerticalAlignment="Top" Visibility="Collapsed" />
作為單個控件-但是在使用控件時如何定義Grid.Column(以某種方式提供它作為參數)? -以及如何設置Grid.RowSpan值(即使代碼已移動到新的xaml文件,並且未在網格內定義)?
任何意見?
使它們成為一個單獨的用戶控件,然后將其包含在您的項目中。
如果您使用的是Blend,則非常簡單,只需選擇所有控件,右鍵單擊並放入“用戶控件”即可。
您也可以將其變成資源。 在ResourceDictionary中定義它,並在字典中包含要使用它的位置。 有一個問題-資源字典每次都會返回相同的實例-因此您必須添加屬性x:Shared =“ false”。
但是wpf的方法是弄清楚如何使用DataTemplate :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.