求助_如何设置动态生成的TextBlock的字体大小(右键菜单设置)

atvtvb 2016-06-27 03:27:51

如图,点击按钮动态生成的TextBlock,右键菜单怎么设置该TextBlock的字体大小
我的源代码:

//按钮
private void buttonLeft_Click_1(object sender, RoutedEventArgs e)
{
TextBlock tb233 = new TextBlock();
tb233.Text = "测试 /n ceshi";
tb233.Name = "dddd";
tb233.Margin = new Thickness(10, 170, 10, 0);
tb233.MouseRightButtonDown += MouseRightButtonDown_1;
grid1.Children.Add(tb233);
}

private void MouseRightButtonDown_1(object sender, MouseButtonEventArgs e)
{
TextBlock tb = sender as TextBlock;
ContextMenu cm = new ContextMenu();
cm.Width = (double)220;
cm.Height = (double)200;
for (int i = 3; i <= 20; i++)
{
MenuItem mi = new MenuItem { Header = "字号:" + i };
mi.Name = "m" + i;
cm.Items.Add(mi);
}
tb.ContextMenu = cm;
}
...全文
241 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
atvtvb 2016-06-28
  • 打赏
  • 举报
回复
引用 9 楼 qqamoon 的回复:
这是个非常容易解决的问题,用数据绑定的方式呗 WPF 中 UIElement 的呈现,尤其是需要变化的部分,比如字体,你可以使用 FontSize={Binding Path=菜单项.Content ElementName=菜单名称} <TextBox.Resources> <sys:Double x:Key=fontSize>10</sys:Double> sys 需要 xmlns:sys 引用一下 </TextBox.Resources> FontSize={DynamicResource 资源的Key} 单击菜单项后,需要在代码中获取并设置 资源Key 的值 这里甚至可以使用动画
恩,我找到方法了,你说的这些不是我想要的,还是谢谢!
atvtvb 2016-06-28
  • 打赏
  • 举报
回复
引用 8 楼 duanzi_peng 的回复:
[quote=引用 7 楼 atvtvb 的回复:] [quote=引用 5 楼 duanzi_peng 的回复:] [quote=引用 3 楼 atvtvb 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 设置TextBlock 的FontSize 不就可以了。
没人回应了?TextBlock的FontSize 直接设置不了的啊,右键菜单的代码和生成TextBlock的代码不在同一个方法体内,怎么设置FontSize?[/quote] 把textblock 声明成一个公共变量tb,几个方法体内 都可以获取到。 在cm的 MouseRight事件中根据选择项获取字号,赋值给tb的FontSize属性。[/quote] 声明公共变量这个方法我想过,但是暂时只是一个,但是我设想是需要生成X个TextBlock,所以我感觉这样应该不适合声明公共变量,因为数量是未知的[/quote] 你应该先把1个textblock的字体改变 这个功能写好,再考虑 x个。你现在连1个的都写不出来,还考虑x个,一步一步的来呗。[/quote]找到方法了,谢谢回答!
龍过鸡年 2016-06-27
  • 打赏
  • 举报
回复
这是个非常容易解决的问题,用数据绑定的方式呗 WPF 中 UIElement 的呈现,尤其是需要变化的部分,比如字体,你可以使用 FontSize={Binding Path=菜单项.Content ElementName=菜单名称} <TextBox.Resources> <sys:Double x:Key=fontSize>10</sys:Double> sys 需要 xmlns:sys 引用一下 </TextBox.Resources> FontSize={DynamicResource 资源的Key} 单击菜单项后,需要在代码中获取并设置 资源Key 的值 这里甚至可以使用动画
  • 打赏
  • 举报
回复
引用 7 楼 atvtvb 的回复:
[quote=引用 5 楼 duanzi_peng 的回复:] [quote=引用 3 楼 atvtvb 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 设置TextBlock 的FontSize 不就可以了。
没人回应了?TextBlock的FontSize 直接设置不了的啊,右键菜单的代码和生成TextBlock的代码不在同一个方法体内,怎么设置FontSize?[/quote] 把textblock 声明成一个公共变量tb,几个方法体内 都可以获取到。 在cm的 MouseRight事件中根据选择项获取字号,赋值给tb的FontSize属性。[/quote] 声明公共变量这个方法我想过,但是暂时只是一个,但是我设想是需要生成X个TextBlock,所以我感觉这样应该不适合声明公共变量,因为数量是未知的[/quote] 你应该先把1个textblock的字体改变 这个功能写好,再考虑 x个。你现在连1个的都写不出来,还考虑x个,一步一步的来呗。
atvtvb 2016-06-27
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
[quote=引用 3 楼 atvtvb 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 设置TextBlock 的FontSize 不就可以了。
没人回应了?TextBlock的FontSize 直接设置不了的啊,右键菜单的代码和生成TextBlock的代码不在同一个方法体内,怎么设置FontSize?[/quote] 把textblock 声明成一个公共变量tb,几个方法体内 都可以获取到。 在cm的 MouseRight事件中根据选择项获取字号,赋值给tb的FontSize属性。[/quote] 声明公共变量这个方法我想过,但是暂时只是一个,但是我设想是需要生成X个TextBlock,所以我感觉这样应该不适合声明公共变量,因为数量是未知的
  • 打赏
  • 举报
回复
引用 2 楼 atvtvb 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 设置TextBlock 的FontSize 不就可以了。
不会,告诉我怎么写[/quote] 会百度么? 有什么问题 先自己尝试着去查询,实现没有办法了,再问。
  • 打赏
  • 举报
回复
引用 3 楼 atvtvb 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 设置TextBlock 的FontSize 不就可以了。
没人回应了?TextBlock的FontSize 直接设置不了的啊,右键菜单的代码和生成TextBlock的代码不在同一个方法体内,怎么设置FontSize?[/quote] 把textblock 声明成一个公共变量tb,几个方法体内 都可以获取到。 在cm的 MouseRight事件中根据选择项获取字号,赋值给tb的FontSize属性。
atvtvb 2016-06-27
  • 打赏
  • 举报
回复
可能说得不够清楚,是图片中红框部分:
atvtvb 2016-06-27
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
设置TextBlock 的FontSize 不就可以了。
没人回应了?TextBlock的FontSize 直接设置不了的啊,右键菜单的代码和生成TextBlock的代码不在同一个方法体内,怎么设置FontSize?
atvtvb 2016-06-27
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
设置TextBlock 的FontSize 不就可以了。
不会,告诉我怎么写
  • 打赏
  • 举报
回复
设置TextBlock 的FontSize 不就可以了。

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧