我知道我有幾個選擇用於將窗口劃分爲不同的部分(例如,DockPanel,StackPanel等)。我的Windows應用程序要求用戶能夠在運行時調整不同部分的大小,類似於用戶可以在HTML中調整FRAME寬度的方式。有沒有人有什麼類型的控件用於在C#WPF中完成此建議?如果您有任何代碼可以說明用戶如何將鼠標懸停在區域邊界上並單擊按鈕來調整大小,那將是理想選擇。如何在WPF中調整「框架」?
3
A
回答
5
System.Windows.Controls.GridSplitter
http://msdn.microsoft.com/en-us/library/system.windows.controls.gridsplitter.aspx
實施例:
<Grid VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="5" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListBox Grid.Row="0" >
<TextBlock>Hello</TextBlock>
</ListBox>
<GridSplitter Grid.Row="1"
Height="5" Background="Gray"
VerticalAlignment="Top"
HorizontalAlignment="Stretch" />
<ListBox Grid.Row="2" >
<TextBlock>World</TextBlock>
</ListBox>
</Grid>
0
這裏的製作幀編程,在任一方向的一個例子。
var topTB = new TextBox();
var middleTB = new TextBox();
var bottomTB = new TextBox();
var g = MakeSideBySideFrames(this.Root, topTB, middleTB, bottomTB);
g.Height = 300.0;
public Grid MakeTopBottomFrames(Panel parent, params UIElement[] items)
{
return MakeFrames(parent,
newPosition: (g, len) => { g. RowDefinitions.Add(new RowDefinition { Height = len }); },
setPosition: (item, inx) => { Grid.SetRow(item, inx); },
items: items);
}
public Grid MakeSideBySideFrames(Panel parent, params UIElement[] items)
{
return MakeFrames(parent,
newPosition: (g, len) => { g.ColumnDefinitions.Add(new ColumnDefinition { Width = len }); },
setPosition: (item, inx) => { Grid.SetColumn(item, inx); },
items: items);
}
Grid MakeFrames(Panel parent,
Action<Grid, GridLength> newPosition,
Action<UIElement, int> setPosition,
params UIElement[] items
)
{
var g = new Grid();
parent.Children.Add(g);
for (var inx = 0; inx < items.Length; inx++)
{
if (inx > 0)
{
newPosition(g, new GridLength(5));
var gs = new GridSplitter();
g.Children.Add(gs);
setPosition(gs, (inx * 2) - 1);
gs.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
gs.VerticalAlignment = System.Windows.VerticalAlignment.Stretch;
gs.Background = new SolidColorBrush(Colors.Black);
gs.ShowsPreview = true;
}
newPosition(g, new GridLength(1, GridUnitType.Star));
g.Children.Add(items[inx]);
setPosition(items[inx], inx * 2);
}
return g;
}
相關問題
- 1. Javascript:如何調整框架?
- 2. 在TabItem/StackPanel中自動調整WPF框架對象的大小
- 3. 如何使UiTextField框架自動調整
- 4. 如何讓tkinter pack_forget調整父框架?
- 5. 如何在zend框架中調整上傳的圖像
- 6. 如何在我的框架中調整按鈕大小
- 7. 如何在離子框架中調整圖像大小?
- 8. 調整navigationItem.titleView的框架?
- 9. 如何在調整UIWebView框架的大小時禁用UIWebView調整內容
- 10. WPF:使窗口不可調整,但保持框架?
- 11. main.scala.html如何在Play框架中調用
- 12. 在WPF中調整圖像
- 13. 調整在tumblr框架工作的iframe
- 14. 調整大小的ImageView在其框架
- 15. 如何調整webapp中的框架空間?
- 16. 如何按比例調整框架中的矩形?
- 17. 如何在旋轉屏幕時調整UIViewController的框架大小?
- 18. 如何在發生事件後調整框架大小?
- 19. 如何在框架內調整大小和繪製組件
- 20. 如何添加wxpython框架樣式來禁用框架調整大小
- 21. 在netbeans中主框架最大化時自動調整內部框架
- 22. WPF中的框架導航
- 23. 如何自動調整wpf文本框的寬度?
- 24. WPF:如何調整禁用文本框的樣式?
- 25. WPF/XAML:如何調整沒有邊框的窗口?
- 26. Tkinter的網格和框架沒有調整大小框架
- 27. 在Java中調查框架?
- 28. WPF Multibinding框架4.0
- 29. WPF驗證框架
- 30. WPF的MVC框架