当用户点击左边的CTRL + SHIFT左边我想使整个应用半透明(如VS2008的智能感知下拉).如果我在KeyUp事件上编写代码,我可以捕获被按下的两个键,但只有在按下键时才能激活透明效果.当它们被释放时,不透明度应该回到100%.我想要的行为实际上是KeyDown事件,但我无法捕获KeyDown上的两个键,可以吗?
谢谢
我在 WPF 项目中遇到了巨大的内存泄漏,并且正在尝试找出可以采取哪些措施来最大程度地减少它。为了访问资源,我 100% 的时间都使用 StaticResource。我应该尽可能使用 DynamicResource 吗?StaticResource 和 DynamicResource 之间的内存管理有何优势?
仅供参考:我有一个通过 DataTemplate 显示数据的列表框。当用户向上/向下滚动时,内存会快速增加,只需几分钟的向上/向下滚动即可达到 1GB。
我有一个带有名为CanSeePhotos的布尔静态属性的类,这应该控制我的DataTemplate中图片的可见性.出于调试目的,我将"CanSeePhotos"绑定到DataTemplate中的文本块.
我想做的是:
我的问题是如果我在InitializeComponent()之后设置CanSeePhotos = true,那么数据仍然显示为CanSeePhotos为false(如果我在它工作正常之前这样做).这是为什么?如何修复它以便我可以在加载数据之前的任何时候设置值?
这是我如何绑定到我的DataTemplate中的静态变量:
<TextBlock Text="{Binding Source={x:Static DAL:LoggedInUser.CanSeePhotos}, Mode=OneWay}"/>
Run Code Online (Sandbox Code Playgroud)
这是LoggedInUser类:
public class LoggedInUser
{
public static bool CanSeePhotos { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
编辑:如果我将控件的可见性直接绑定到静态属性,它将根据属性的值显示/折叠:
Visibility="{Binding Source={x:Static DAL:LoggedInUser.CanSeePhotos}, Converter={StaticResource BooleanToVisibilityConverter}}"
Run Code Online (Sandbox Code Playgroud)
但我需要像这样使用DataTrigger:
<DataTrigger Binding="{Binding Source={x:Static DAL:LoggedInUser.CanSeePhotos}}" Value="true">
<Setter TargetName="icon" Property="Source" Value="{Binding Photo}"/>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud)
在上面的情况下,如果属性为true,则setter永远不会被设置.
是什么赋予了?
我使用的是Visual Studio 2008 SP1(版本9.0.30729.1).我的问题是,我看到的唯一与报告相关的工具箱项目是3个"文本框"控件.其他的东西在哪里?我是否需要添加对不同程序集的引用?
以下是我采取的步骤:
1)打开Visual Studio
2)添加新项目 - >"报告应用程序"
3)打开Report1.rdlc
4)打开工具箱,没有可用的控件(重复3个文本框控件除外)
谢谢你的帮助.
我在画布里面有一个边框.边框的高度/宽度根据其内容而变化.我希望边框伸展以填满整个画布.我怎样才能做到这一点?
我在边境上试过这个没有成功:
Height="{Binding ElementName=MainCanvas, Path=Height}"
Width="{Binding ElementName=MainCanvas, Path=Width}"
Run Code Online (Sandbox Code Playgroud) 我想阻止在ListBox中选择ListBoxItems.我的DataTemplate有一个复选框,这应该是用户可以单击或选择的唯一选项.我怎样才能做到这一点?谢谢!
我有一个WCF服务,它公开两个操作 - IncrementList()和GetList().客户端B连接到服务,调用GetList()并显示给用户.客户端A能够通过调用IncrementList()来更新此列表.
我希望客户端B在调用IncrementList()时得到通知,这样它可以再次调用GetList()来显示更新的数据.
您能否概述一下如何实现这一点?回调?复式?发布/订阅?
WCF 4.0中有哪些新功能可以帮助实现这种情况?

谢谢!
我想要做的是如此简单,但我很难让它工作.我在同一行看到了一些帖子,但我仍然有疑问.
我有一个名为mnuA的MenuItem对象.我想要的只是在C#中以编程方式设置icon属性.我尝试了以下内容
a)mnuA.Icon = new BitmapImage{UriSource = new Uri(@"c:\icons\A.png")};
结果:我没有显示实际的图标,而是获得了类名(System.Windows.Media.Imaging.BitmapImage)
b)mnuA.Icon = new BitmapImage(new Uri(@"c:\icons\A.png"));
结果:我没有显示实际图标,而是获得图像的路径(file:///c:/icons/A.png)
我究竟做错了什么?对于像这样简单的事情,我真的需要一个转换器类吗?
我有一个简单的用户控件来在文本块中显示超链接:
LinkTextBlock.xaml:
<TextBlock >
<Hyperlink NavigateUri="{Binding Url, ElementName=root}" >
<TextBlock Text="{Binding Text, ElementName=root}" />
</Hyperlink>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
LinkTextBlock.xaml.cs:
public static readonly DependencyProperty UrlProperty = DependencyProperty.Register("Url", typeof (string), typeof (LinkTextBlock));
public string Url
{
get { return (string) GetValue(UrlProperty); }
set { SetValue(UrlProperty, value); }
}
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof (string), typeof (LinkTextBlock));
public string Text
{
get { return (string) GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
Run Code Online (Sandbox Code Playgroud)
然后,在 ListBox 的 DataTemplate 中,我有:
<Controls:LinkTextBlock Text="{Binding Email}" Url="{Binding …Run Code Online (Sandbox Code Playgroud) 我的客户有一个用Delphi 3编写的系统,数据库是Paradox.我的工作是将其转换为使用SQL Server 2008.如何使其连接到SQL 2008?我知道,这是很老的东西.我很感激帮助.谢谢
wpf ×7
datatemplate ×2
bitmapimage ×1
c# ×1
callback ×1
canvas ×1
data-binding ×1
delphi ×1
delphi-3 ×1
dock ×1
icons ×1
keyboard ×1
layout ×1
listbox ×1
memory ×1
opacity ×1
performance ×1
report ×1
resources ×1
sql-server ×1
toolbox ×1
transparency ×1
wcf ×1