我有一个Windows窗体,面板上有几个控件.面板不会占用所有的表单空间,只占很小的一部分.我想知道的是,是否有某种方法可以检索面板的显示(包含所有子控件)作为位图.就像一个截图,但只是裁剪到面板.
我没有调查屏幕捕获,因为面板在可滚动控件(DevX控件)内,所以有时它可能不完全可见,我需要它的可视化表示是否可见.
这有可能吗?
编辑:
好吧,现在好像我担心的那样.使用DrawToBitmap()的建议解决方案仅绘制可见的控件部分.我使用DisplayRectangle来检索完整控件的大小.矩形是可以的,现在位图是完整控件的大小,但是控件中不可见的部分在位图上是透明的,不显示控件的不可见部分上的控件.
有没有机会完全渲染?
我有一个ItemsControl显示一堆矩形.每个矩形需要向上和向左偏移.所以,我创建了一个RectangleStyle使用绑定来设置矩形的宽度,高度,X平移和Y平移.
宽度和高度绑定工作正常,但我得到TranslateTransform绑定的以下错误:
System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement.BindingExpression:路径= Offset.X; 的DataItem = NULL; target元素是'TranslateTransform'(HashCode = 16452547); target属性为'X'(类型'Double')
这是我的定义ItemControl:
<ItemsControl
Style="{StaticResource ItemsControlStyle}"
ItemsSource="{Binding Zones}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Rectangle Style="{StaticResource RectangleStyle}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
这是以下定义ItemsControlStyle:
<Style x:Key="ItemsControlStyle" TargetType="ItemsControl">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style>
<Setter Property="Canvas.Left" Value="{Binding Point.X}" />
<Setter Property="Canvas.Top" Value="{Binding Point.Y}" />
</Style>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
以下是定义RectangleStyle:
<Style x:Key="RectangleStyle" TargetType="Rectangle">
<Setter Property="Width" Value="{Binding Size.Width}" />
<Setter Property="Height" …Run Code Online (Sandbox Code Playgroud) 我认为我在同一个按钮上多次点击有问题.我以为我解决了它,但我认为有2个问题,而不是我认为的一个问题.
第一个问题是,如果他们点击了一个按钮(比如一个保存按钮),它会做很多保存ajax帖子.
因此,如果他们点击它5次因为他们不耐烦它会节省5倍,在某些情况下会使服务器崩溃,但大多数时候只是做出了奇怪的结果.所以我发现了一个很棒的插件,以确保无法做出重复的请求,我认为问题已经解决了.
但是我有一些按钮,你点击它,它会产生一个jquery ui对话框,我相信如果你点击该按钮5次就会弄乱对话框.喜欢它没有5个对话框,但我注意到表单中的控件不会突然发生.
因此,如果我只是单击一个按钮并创建对话框就可以了.如果我在对话框完成渲染之前单击按钮5次,我不再看到验证错误,有时它的日期选择器就消失了.
它只是不起作用.
所以我认为我需要一些东西来阻止这种大规模点击,所以我想到当点击一个按钮时所有按钮都被禁用,直到它完成加载任何东西.我不确定这是否是最佳方式,这就是我要问的原因.
我也不确定在哪里放置代码.将它放在一个全球区域或其他什么东西会很棒,所以我不必把它放在每个方法中.
谢谢
在python中,如果你写的东西像
foo==bar and spam or eggs
Run Code Online (Sandbox Code Playgroud)
如果布尔语句为true,则python似乎返回垃圾邮件,否则返回egg.有人可以解释这种行为吗?为什么表达式没有被评估为像一个长布尔值?
编辑:具体来说,我试图弄清楚为什么'垃圾'或'鸡蛋'作为表达结果返回的机制.
我在PHP中有Web服务,它获取dateTime对象(来自asp).我想以自定义格式解析这个日期.最初的日期格式为"2010-07-05T00:00:00 + 02:00".我在尝试这个时:
$oDate = strtotime($date_from_webservice);
$sDate = date("d.m.Y",$oDate);
echo $sDate;
Run Code Online (Sandbox Code Playgroud)
我的日期是"07.04.2010",也就是提前一天.为什么?
谢谢
任何人都可以建议一种方法来设置一个Cron触发器每小时运行一半的时间?
到目前为止,我按照"0 0/60***?"每小时工作一次.
我在看"0 0/30***?" 什么?
摩根先生.
我需要使用PHP将$ 89.50转换为Eight-Nine Dollars和Fifty Cents.有什么功能我在某处丢失了吗?
有可能写出类似的东西:
data SomeData = SomeValue | (Integral a) => SomeConstructor a
Run Code Online (Sandbox Code Playgroud)
一个人怎么写这个呢?
我目前正在开发一个Window应用程序,它使用CheckedListBoxes来实现程序的某些方面.我遇到的一个问题是,我一直在尝试查找项目被选中时触发了哪个事件,这样我就可以在选中任何列表项时启用表单按钮.
问题是我尝试使用以下内容;
private void clbAvailMods_ItemCheck(object sender, ItemCheckEventArgs e)
{
if(e.NewValue == CheckState.Checked)
{
btnInstall.Enabled = true;
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在if语句上设置断点时,它永远不会在检查列表框中的项目时触发.
我在这里做错了吗?
php ×2
binding ×1
bitmap ×1
bottom-up ×1
c# ×1
cron ×1
currency ×1
data-binding ×1
date ×1
datetime ×1
events ×1
formatting ×1
grammar ×1
haskell ×1
jquery ×1
jquery-ui ×1
panel ×1
python ×1
screenshot ×1
string ×1
strtotime ×1
syntax ×1
topdown ×1
triggers ×1
types ×1
winforms ×1
wpf ×1
xaml ×1