【发布时间】:2012-03-24 11:10:23
【问题描述】:
为什么我不能在 wpf 中这样做?
button1Click.Content = "Hover over me";
或
ToolTip t = new ToolTip();
t.Content = "Something helpful";
button1Click.Tooltip = t;
我在初始化时用填充按钮填充我的寡妇,然后我有一个 foreach 循环添加按钮,如下所示:
foreach (var routedEventHandler in new RoutedEventHandler[] { button1Click, button2Click, button3_Click })`
现在在这个区域中,我将样式一次性应用到按钮上,如下所示:
public void populateButtons()
{
double xPos;
double yPos;
Random ranNum = new Random();
foreach (var routedEventHandler in new RoutedEventHandler[] { button1Click, button2Click, button3_Click })
{
Button foo = new Button();
Style buttonStyle = Window.Resources["CurvedButton"] as Style;
int sizeValue = 100;
foo.Width = sizeValue;
foo.Height = sizeValue;
xPos = ranNum.Next(200);
yPos = ranNum.Next(250);
foo.HorizontalAlignment = HorizontalAlignment.Left;
foo.VerticalAlignment = VerticalAlignment.Top;
foo.Margin = new Thickness(xPos, yPos, 0, 0);
foo.Style = buttonStyle;
foo.Click += routedEventHandler;
LayoutRoot.Children.Add(foo);
}
}
}
}
但是当我尝试这个时:
private void button3_Click(object sender, RoutedEventArgs e)
{
((Button)sender).ToolTip = t;
}
它只有在按下按钮时才会激活? (感谢@H.B)
但是,当我将工具提示代码粘贴到填充按钮中时:
Random ranNum = new Random();
foreach (var routedEventHandler in new RoutedEventHandler[] { button1Click, button2Click, button3_Click })
{
Button foo = new Button();
ToolTip t = new ToolTip();
t.Content = "Something helpful";
foo.ToolTip = t;
有效吗?但问题是这样做会设置所有按钮都具有相同的工具提示和/或按钮内容!我不想要,但我找不到解决办法?
总而言之,我可以在“populateButtons()”中设置具有相同工具提示消息或按钮内容的所有按钮,或者我只能在按下按钮时设置工具提示和按钮内容。
有没有可以向命名按钮添加内容的方法?
就像我最初的尝试:
button1Click.Content = "Home Button";
或
button1Click.ToolTip = "Hover over me";
为什么你不能在初始化时为特定按钮设置内容和工具提示?
【问题讨论】:
-
为什么我会在世界上迭代一些处理程序的集合,我想知道......