我有一个WPF应用程序,其中应缩放用户界面,以便在窗口变大时它应该变大.在其中一个对话框中,我需要向用户显示项目列表,用户应单击其中一个.该列表将包含1到15-20个项目.我希望每个项目的字体大小与列表中其他项目的字体大小一样大,但同时我希望在窗口变大时字体大小增加.
目前,我的测试代码如下所示.
<Window x:Class="WpfApplication4.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:WpfApplication4"
Title="Window1" Height="480" Width="640">
<ScrollViewer>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30*" MinHeight="30"/>
<RowDefinition Height="30*" MinHeight="30"/>
<RowDefinition Height="30*" MinHeight="30"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" MaxHeight="100"><Viewbox><TextBlock>T</TextBlock></Viewbox></Button>
<Button Grid.Row="1" MaxHeight="100"><Viewbox><TextBlock>Test</TextBlock></Viewbox></Button>
<Button Grid.Row="2" MaxHeight="100"><Viewbox><TextBlock>Test Longer String</TextBlock></Viewbox></Button>
</Grid>
</ScrollViewer>
</Window>
Run Code Online (Sandbox Code Playgroud)
如果应用程序启动并且窗口变宽,则一切看起来都正常.如果窗口宽度减小时,文本的字体大小Test Longer String变小,但的字体大小T和Test保持相同.我明白为什么会发生这种情况 - 视图框会将内容缩放到最大尺寸.我想知道的是我应该用什么方法来解决这个问题.
我不想给控件特定的字体大小,因为有些人会在640x480这样的低分辨率屏幕上运行它,而其他人会使用更大的宽屏.
编辑:
我试图将我的代码修改为以下内容:
<ScrollViewer>
<Viewbox>
<ItemsControl>
<Button>Test 2</Button>
<Button>Test 3</Button>
<Button>Test 4 afdsfdsa fds afdsaf</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
<Button>Test 5</Button>
</ItemsControl>
</Viewbox>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
但随着按钮边框的大小也增加,因此在大屏幕上,按钮边框变为厘米宽.
我在我的AI项目中遇到了一个有趣的问题.我正在尝试格式化一些调试文本,并且发生了一些奇怪的事情.这是一段代码:
float ratio = 1.0f / TIME_MOD;
Run Code Online (Sandbox Code Playgroud)
TIME_MOD是一个静态浮点数,在单独的文件中声明.这个值是基于另一个类中的用户输入修改的(我已经验证了值在"input"函数的范围内仍在调试时被更改),但每当我尝试在外部循环中除以它时,我得到了相同的号码.(1除以TIME_MOD的初始值).
我是否遗漏了有关静态变量和文件范围的内容?
我叫obackgroundworker.CancelAsync(); 在一个后台工作者当前在另一个线程中做一些工作然后使用while(obackgroundworker.IsBusy == true)等待它在退出应用程序之前完成(如果用户在线程离开处理时改变主意并且我想要干净地关闭)
取消挂起的单位正确设置为true但线程没有退出,在工作线程中我有:
backgroundworker obackgroundworker = (backgroundworker)sender;
if (obackgroundworker.cancellationpending == true)
e.cancel = true;
Run Code Online (Sandbox Code Playgroud)
应检查取消是否待定,然后将取消的标志设置为true,我认为这也会导致线程实际终止...?或者,当检测到取消实际结束时,是否需要从线程调用其他函数?
我已经阅读了很多使用背景工作者的例子,并且没有报告任何问题.
资料来源:
http://www.albahari.com/threading/part3.aspx http://www.dotneat.net/2009/02/10/BackgroundworkerExample.aspx http://www.codeproject.com/KB/cpp/BackgroundWorker_Threads. ASPX
谢谢
我想记录设备驱动程序的所有读/写PCI事务.有没有办法通过linux命令或软件来做到这一点?
干草,我需要帮助制作一个正则表达式.该字符串必须包含" - ",且不得包含".".
有谁可以帮助我吗.
我试图使用AOP框架创建一个对象,该框架使用CGLIB来创建代理对象.奇怪的是,"增强型"代理对象没有上一课所有的任何注释!
任何人都可以告诉我如何让CGLIB保留其创建的代理上的注释?
干杯! Nirav
我正在构建一个Hadoop(0.20.1)mapreduce作业,它使用HBase(0.20.1)作为数据源和数据接收器.我想用Python编写这个工作,它要求我使用hadoop-0.20.1-streaming.jar来传输数据到我的Python脚本之间.如果数据源/接收器是HDFS文件,这可以正常工作.
Hadoop是否支持从/向HBase流式传输mapreduce?
为了重新安装我的MySQL数据库,我删除了/etc/my.cnf
但是MySQL的默认设置是什么?我如何查看正在使用的配置文件?
我可以看到,它mysql --help给了我一个当前设置的列表.但我真正的问题是我想修改local-infile和max_allowed_packet.
帮助文本还指出它从以下文件中读取:/etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf.但它们都不存在:
> cat /etc/my.cnf /etc/mysql/my.cnf /opt/local/etc/mysql5/my.cnf ~/.my.cnf
cat: /etc/my.cnf: No such file or directory
cat: /etc/mysql/my.cnf: No such file or directory
cat: /opt/local/etc/mysql5/my.cnf: No such file or directory
cat: /Users/jesper/.my.cnf: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我可以创建仅包含这些设置的新配置文件吗?最具体的是:如何查看正在使用的配置文件?
这是输出 mysql --help
> mysql --help
mysql Ver 14.14 Distrib 5.1.40, for apple-darwin10.0.0 (i386) using readline 6.0
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
[...] …Run Code Online (Sandbox Code Playgroud) 我很肯定这本指南存在,但我今天的Google技能似乎已被打破.你能告诉我指向该部分的MSDN的链接吗?