我是一个WPF n0ob,我正在努力选择合适的控件来获得我想要的布局.
我要做的是在屏幕上绘制一堆正方形(虚拟便利贴).每个音符都是一个不错的尺寸(约150像素左右),可能有数百个音符.我希望整个事情都是可滚动的,这样你就可以根据自己的喜好调整窗口的大小,整个事情应该是可缩放的.
我做到了这一点并且有效.
但我所做的似乎非常错误......
在代码中,我动态创建发布便笺并将其添加到巨型画布中.我手动进行数学计算以确定每个音符的放置位置以及画布应该有多大.我在顶部添加了一些标签,并且必须返回并添加"Y偏移"值以将所有方块向下推.我实际上生成了三个不同的画布控件,然后将它们中的每一个添加到ScrollViewer内部的堆栈面板中.我添加了一个滚动条,并在调整条形图时将堆栈面板设置为放大和缩小.
它"有效",但我觉得我真的没有按照它的意图使用WPF.我尝试使用网格实现相同的功能,但网格似乎并不想要适当地调整自身大小.
有人能告诉我一个"更好"的方式来实现相同的外观吗?
这是我的Xaml代码 - 你可以看到; 没有多少......
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition />
</Grid.RowDefinitions>
<Slider x:Name="ZoomSlider" Minimum="0.01" Value="1" Maximum="2" Margin="0,0,0,6" />
<ScrollViewer x:Name="MyScroller" Grid.Row="1" HorizontalScrollBarVisibility="Visible" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
<StackPanel x:Name="TicketsGrid" Background="White" HorizontalAlignment="Center">
</StackPanel>
</ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)
然后这就是我在代码中所做的事情(丑陋!!!)
For Each myWorkItem As WorkItem In myWorkItems
Dim newRect As New Border
newRect.Width = TicketSizeX
newRect.Height = TicketSizeY
If myWorkItem.State.ToUpper.Contains("HOLD") Then
newRect.Background = New SolidColorBrush(Colors.Purple)
Else
newRect.Background = New SolidColorBrush(Color)
End …Run Code Online (Sandbox Code Playgroud) float b = 1.0f;
int i = (int)b;
int& j = (int&)b;
cout << i << endl;
cout << j << end;
Run Code Online (Sandbox Code Playgroud)
随后的输出i是1和的输出1065353216!这对我来说是个大惊喜!那么(int&)转换的真正含义是什么?
我正在寻找javascript中C#区域的等效功能
C#语法
#region RegionName
public static void MyFunction()
{
[mycode]
}
#endregion
Run Code Online (Sandbox Code Playgroud)
这允许我使用Visual Studio在我的.js文件中"折叠"我的代码并使其更易于管理.
有人有任何想法吗?
我需要解析出现在字符串开头的十进制整数.
十进制数字后面可能有尾随垃圾.这需要被忽略(即使它包含其他数字.)
例如
"1" => 1
" 42 " => 42
" 3 -.X.-" => 3
" 2 3 4 5" => 2
Run Code Online (Sandbox Code Playgroud)
.NET框架中是否有内置方法来执行此操作?
int.TryParse()不适合.它允许尾随空格但不允许其他尾随字符.
实现这个很容易,但如果它存在,我宁愿使用标准方法.
在您的实际编程经验中,STACK和HEAP的这些知识如何在现实生活中拯救您?来自战壕的任何故事?或者这个概念是否适合填写编程书籍并有利于理论?
我不能让这个工作:
NSString *string = @"!#€%&/()*^*_:;;:;_poawolwasnndaw";
NSData *stringData = [string dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
Run Code Online (Sandbox Code Playgroud)
stringData将为nil.为什么?
我目前正在开发一个Java平台,我为它编写了自己的游戏引擎Bonsai.现在我问自己一个问题"我是否过度使用静力学?".
一方面它非常方便,因为我不必像地图或播放器那样在每个类中保持对游戏实例的引用.另一方面......我已经不得不剥离applet支持,因为那里的所有静态内容非常错误.
所以我的问题是,既然你可能比我更有经验的Java程序员,我应该摆脱所有静态吗?如果是的话,什么才能成为这样的有效方法:
public void draw(Graphics2D) {
if (this.game.time() > this.timer) {
this.game.image.draw(this.tiles[this.game.animation.get("tileAnim")], x, y, null)
}
}
Run Code Online (Sandbox Code Playgroud)
代替:
public void draw(Graphics2D) {
if (Game.time() > this.timer) {
Image.draw(this.tiles[Animation.get("tileAnim")], x, y, null)
}
}
Run Code Online (Sandbox Code Playgroud)
甚至在地图编辑器中更糟糕:
public void control() {
if(this.map.game.input.keyPressed(...)) {
this.map.game.sound.play(...);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
根据答案我决定有一个GameObject类,它为每个组件提供包装器方法.地图,播放器等然后从它的子类,这样我所有this.game调用都隐藏在场景后面,它仍然在前端看起来很好:
public class GameObject {
private Game game;
public GameObject(Game g) {
game = g;
}
public Game Game() {
return game;
}
public GameAnimation Animation() {
return game.animation;
}
public GameInput Font() …Run Code Online (Sandbox Code Playgroud) 我一直在努力将ms-access文件切换到SQLite文件,以满足我简单的数据库需求; 通常的原因:文件较小,开销较小,开源等.
阻止我进行切换的一件事似乎是SQLite缺乏速度.对于简单的SELECT查询,SQLite似乎与MS-Access一样好或更好.使用多个INNER JOIN语句的相当复杂的SELECT查询会出现问题:
SELECT DISTINCT
DESCRIPTIONS.[oCode] AS OptionCode,
DESCRIPTIONS.[descShort] AS OptionDescription
FROM DESCRIPTIONS
INNER JOIN tbl_D_E ON DESCRIPTIONS.[oCode] = tbl_D_E.[D]
INNER JOIN tbl_D_F ON DESCRIPTIONS.[oCode] = tbl_D_F.[D]
INNER JOIN tbl_D_H ON DESCRIPTIONS.[oCode] = tbl_D_H.[D]
INNER JOIN tbl_D_J ON DESCRIPTIONS.[oCode] = tbl_D_J.[D]
INNER JOIN tbl_D_T ON DESCRIPTIONS.[oCode] = tbl_D_T.[D]
INNER JOIN tbl_Y_D ON DESCRIPTIONS.[oCode] = tbl_Y_D.[D]
WHERE ((tbl_D_E.[E] LIKE '%')
AND (tbl_D_H.[oType] ='STANDARD')
AND (tbl_D_J.[oType] ='STANDARD')
AND (tbl_Y_D.[Y] = '41')
AND (tbl_Y_D.[oType] ='STANDARD')
AND (DESCRIPTIONS.[oMod]='D'))
Run Code Online (Sandbox Code Playgroud)
在MS-Access中,此查询在大约2.5秒内执行.在SQLite中,它需要8 分钟多一点.无论是从VB代码运行查询还是使用sqlite3.exe从命令提示符运行,都需要相同的时间.
所以我的问题如下:
我收到了一个包含40个同名文件的zip文件.我想将这些文件中的每一个提取到一个单独的文件夹中,或者使用不同的名称(file1,file2等)提取每个文件.
有没有办法用标准的linux工具自动完成?男人解压缩的检查显示没有任何可以帮助我的东西.zipsplit似乎也不允许任意拆分zip文件(我试图将zip分成40个档案,每个档案包含一个文件).
目前我(r)单独命名我的文件.对于40文件存档而言,这不是一个问题,但显然是不可扩展的.
有人有一个很好的,简单的方法吗?比其他任何东西都更好奇.
谢谢.
Eclipse调试器中的图标是什么意思?
Eclipse中的图标装饰器是什么意思?
Eclipse的Package Explorer中的图标是什么意思?
Eclipse图标顶部的小字母是什么意思?
Eclipse中的两个错误图标(红色圆圈中的x和带灯泡的错误图标)之间有什么区别?
我刚刚来到SO寻找这个,没找到它,并在我自己的其他地方找到它.但是我觉得SO能够得到答案以供将来参考; 当我刚接触Eclipse时,我一直在想它们(这是在我发现之前).