我想用下面描述的屏幕創建應用程序。如何將一個Button添加到多個Canvasses?
|-----------------------------------------|
| MainWindow [-][=][x]|
|-----------------------------------------|
| | |
| (Button1) | (Button1) |
| | |
| 1| 2|
|-----------------------------------------|
| | |
| (Button1) | (Button1) |
| | |
| 3| 4|
|-----------------------------------------|
Legend: It a window form has four canvas (are 1,2,3,4) added to grid.
以下是我的代碼。我正在使用.Net 3.0,但窗口無法正確顯示。 Button1僅在canvas1上顯示。 請幫我解決這個問題。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Button bt1 = new Button()
{ Content = "Button1", Width = 100, Height = 50 };
// Add button1 to four DrawingCanvas.
canvas1.Add(bt1);
canvas2.Add(bt1);
canvas3.Add(bt1);
canvas4.Add(bt1);
}
}
public class DrawIngCanvas : Canvas
{
public void Add(UIElement data)
{
DrawIngCanvas cv = LogicalTreeHelper.GetParent(data) as DrawIngCanvas;
if (cv != null)
{
cv.RemoveLogicalChild(data);
cv.RemoveVisualChild(data);
}
base.Children.Add(data);
}
}
你有沒有考慮包裝的按鈕和帆布成複合控制? – 2012-01-07 03:22:31
如果你不需要太多的控件,並且想要同步所有4畫布,那麼你可以使用成像('VisualBrush')在2,3,4中顯示1個主畫布的相同副本。 – Code0987 2012-01-07 10:33:25