当窗口调整大小时,如何将窗口对象(按钮,标签等)保持在中心?
目前,我在Windows窗体中有3个按钮.当我最大化窗口时,按钮停留在窗口的左上部分.我希望它们在窗口未最大化时处于中心位置.
有帮助吗?
我有三个儿童游戏对象(如下图所示,红色,粉红色和蓝色).他们是父游戏对象Green的孩子.
我不知道,如何计算Parent(Green)GameObject的大小?
我在运行时使用以下代码创建所有这些游戏对象:
GameObject CreatePattern(int difficultyLevel)
{
GameObject gameObjectTemp = new GameObject();
SinglePattern singlePattern;
gameObjectTemp = (GameObject) Instantiate(gameObjectTemp);
singlePattern = freeRunDataHandler.GetSinglePatternRandom(1);
GameObject gameObjectSingleObject = null;
foreach (SingleObject singleObject in singlePattern.singleObjectList)
{
gameObjectSingleObject = GetGameObjectByCategory(singleObject.catergory, singleObject.type);
if (gameObjectSingleObject != null)
{
gameObjectSingleObject = (GameObject) Instantiate(gameObjectSingleObject, new Vector3(singleObject.positionX, singleObject.positionY, singleObject.positionZ), Quaternion.identity);
gameObjectSingleObject.transform.localScale = new Vector3(singleObject.length, 1, singleObject.width);
gameObjectSingleObject.transform.parent = gameObjectTemp.transform;
}
}
return gameObjectTemp;
}
Run Code Online (Sandbox Code Playgroud)
此函数在添加所有子项后返回父(绿色)gameObject.我的父母(绿色)没有任何附加功能,甚至没有任何组件(BoxCollider,MeshFilter,MeshRenderer等).
我已经附加了BoxCollider,MeshRenderer和MeshFilter(仅供测试)并且我尝试过父母:
parent.collider.bounds.size.x ----- > box collider
parent.renderer.bounds.size.x ----- …Run Code Online (Sandbox Code Playgroud) 我用C#写了一个很长的TCP连接套接字服务器.我的服务器内存中出现峰值.我使用dotNet Memory Profiler(一种工具)来检测内存泄漏的位置.Memory Profiler指示私有堆很大,内存类似于下面(数字不是真实的,我要显示的是GC0和GC2的孔非常大,数据大小正常):
Managed heaps - 1,500,000KB
Normal heap - 1400,000KB
Generation #0 - 600,000KB
Data - 100,000KB
"Holes" - 500,000KB
Generation #1 - xxKB
Data - 0KB
"Holes" - xKB
Generation #2 - xxxxxxxxxxxxxKB
Data - 100,000KB
"Holes" - 700,000KB
Large heap - 131072KB
Large heap - 83KB
Overhead/unused - 130989KB
Overhead - 0KB
Run Code Online (Sandbox Code Playgroud)
Howerver,什么是GC漏洞?dotNet Memory Profiler的文档确定了"漏洞":
"Holes"表示在两个分配的实例之间未使用的内存.由于垃圾收集器中的固定实例或优化,堆未完全压缩时会出现"漏洞".
我想知道的是:
我希望有人可以解释一下.
我有一部分我真的不喜欢的代码,如果有可能以某种方式简化它 - 会非常好.
A a; // I want to get rid of this variable
if((a = collection.FirstOrDefault(x => x.Field == null)) != null)
{
throw new ScriptException("{0}", a.y); //I need to access other field of the object here, that's why I had to declare a variable outside of the expression
}
Run Code Online (Sandbox Code Playgroud) 我有一个XML文件(见下文),可以在列表框中显示所有产品名称.我希望列表框中的每个条目都显示产品名称,后跟价格,而不仅仅是产品名称.
如何在XAML文件中执行datatemplate?谢谢.
简化的XML文件:
<Product>
<Name>Red Chair</Name>
<Price>29.5</Price>
</Product>
Run Code Online (Sandbox Code Playgroud)
简化的XAML文件:
<DockPanel>
<ListBox Name="listBox1" ItemsSource="{Binding}" Margin="10" >
</ListBox>
</DockPanel>
Run Code Online (Sandbox Code Playgroud)
在我的C#文件中,我使用LINQ从XML文件中收集产品并将var产品分配给listBox1.DataContext,它工作正常.现在我只想添加价格.谢谢.
我想写一些代码来删除超过7天的所有DIRECTORIES.
所以:
D:\this我试图从Mysql_query中排除一个'ID',但它仍然返回提到的ID.此ID为"21",但查询返回"21",这不是我想要的.我在Mysql中拼错了吗?
("SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('$notgallery')") or die (mysql_error());
Run Code Online (Sandbox Code Playgroud)
function not_gallery($pic){
$pic = $_GET['id'];
$id = explode(".", $pic);
$notgallery = $id;
$notg = mysql_query("SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('$notgallery')") or die (mysql_error());
while($not_row = mysql_fetch_assoc($notg)){
$notgimage[] = array(
'id' => $not_row['gallery_id'],
'user' => $not_row['user_id'],
'name' => $not_row['name'],
'timestamp' => $not_row['timestamp'],
'ext' => $not_row['ext'],
'caption' => $not_row['caption'],
);
}
print_r($notgimage);
}
Run Code Online (Sandbox Code Playgroud)
我print_r了查询,它仍然返回'21'我已经排除/或我认为我做了
Array ( [0] => Array ( [id] => 21 [user] => 18 …Run Code Online (Sandbox Code Playgroud) 最近我为visual studio开发了2个插件.我已将它们放在ToolBar中.
当我点击visual studio中工具栏中的插件时,插件工作正常.再次,当我点击插件再次使用它时,它不起作用.为了使其工作,我需要关闭视觉工作室.那么如何在不关闭视觉工作室的情况下使插件工作?
在我工作的时候,我做了几次观察.
当我使用Addins时,addin管理器(我们默认加载插件的地方)会自动检查.因此,如果我取消选中它,我可以在不关闭visual studio的情况下重用addin.
但是,如果我这样做,它将成为手动操作,并且不会提供插入工具栏的插件的目的.
那么,有没有办法自动取消选中Addin Manager中的插件,当我在Visual Studio中运行插件时会检查它?
我偶然发现了专业库中的一些代码,并且不确定这是否是一种处理跨线程事件调用的简洁方法.
下面的代码在表单应用程序中.线程调用是从一个本身启动新线程并接收消息的类中进行的:
private void Library_StatusChanged(object sender, AbstractTestCase.StatusChangedEventArgs e)
{
if (this.InvokeRequired)
{
this.lblProgress.Invoke((MethodInvoker)delegate ()
{
lblProgress.Text = "Current state: " + e.Step;
lblProgress.Refresh();
}
);
this.pbProgess.Invoke((MethodInvoker)delegate ()
{
pbProgess.Value = e.Percentage;
pbProgess.Refresh();
});
this.lstStatus.Invoke((MethodInvoker)delegate ()
{
lstStatus.Items.Add(" " + e.Step);
lstStatus.Refresh();
});
this.Invoke((MethodInvoker)delegate ()
{
this.Refresh();
});
}
else
{
lblProgress.Text = "Current state:" + e.Step;
lblProgress.Refresh();
pbProgess.Value = e.Percentage;
pbProgess.Refresh();
lstStatus.Items.Add(" " + e.Step);
lstStatus.Refresh();
this.Refresh();
}
Application.DoEvents();
}
Run Code Online (Sandbox Code Playgroud)
这是"最先进的"吗?在我看来这有点乱??!