WPF应用程序很容易使窗口的某些部分透明或半透明.但是如何将当前的Vista主题(颜色,不透明度)应用于这些透明部分?
当我有绿色玻璃边框时,我如何获得相同风格的绿色玻璃背景?
是否可以在不调用Windows API的情况下执行此操作?
我在想这样的事情
在我的窗口中,我有加载和保存方法的按钮.我使用CommandBinding,并且save-button具有CanExecute属性,以防止用户在加载数据之前保存数据.
CanExecute-Methode连接到一个名为"canSaveXML"的简单bool值
private void Save_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
if (canSaveXML == false)
{
e.CanExecute = false;
}
else
{
e.CanExecute = true;
}
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
我的意图是在加载数据后设置canSaveXML = true,但是在值发生更改后控件不会刷新.我做了一些阅读,发现我必须调用CommandManager.InvalidateRequerySuggested.我现在这样做,我的代码看起来像这样.
canSaveXML = true;
CommandManager.InvalidateRequerySuggested();
Run Code Online (Sandbox Code Playgroud)
但控件(按钮)仍然不刷新.我仍然被禁用,直到我在UI上触发任何内容或最小化/最大化窗口.我这样做后按钮启用.
这有什么不对?
在MSDN示例中,一次又一次地使用dispatchertimer调用CommandManager.InvalidateRequerySuggested,但我拒绝相信这将是唯一的解决方案.
在我的 WPF 应用程序中,我有一个带有列表框的画布。我想在单击项目后用另一个控件覆盖列表框项目。但为此我需要 Listboxitem 在画布中的位置。我看到这个问题是因为单个 Item 不是画布的子项。只有列表框本身是。
有什么方法可以获取 ListboxItem 在画布中的相对位置或者窗口内的绝对位置?
今天我正在玩Xcode快照功能,我想知道如果所有代码丢失,我是否可以从快照重新创建一个完整的项目.
在我看来,在Snapshot-Manager中我只能看到当前项目的快照,而不是所有项目的快照.因此,如果我的项目文件丢失或损坏,无论如何都要从快照中恢复我的文件?
我也想知道快照是否已保存.不在我发现的项目文件夹中.
对于需要保存ListView的宽度和列顺序的WPF项目,因为这些是用户可以更改的内容.我想获得当前宽度没有问题,但目前的位置似乎有点困难.
在WinForms中有类似index和displayIndex的东西,但我在WPF中看不到它.怎么做?
顺便说一句:序列化整个控件不是一种选择.
编辑:
我使用listView.columns属性找到了一些示例.但是我的listView中没有这样的属性
我的XAML代码是这样的:
<ListView>
<ListView.View>
<GridView>
<GridViewColumn>
....
Run Code Online (Sandbox Code Playgroud) 我刚刚发现我的SqlDateTime.MinValue在不同的机器上是不同的.
有时它是= DateTime(1953,1,1,0,0,0);
但在其他机器上它是= DateTime(1753,1,1,0,0,0);
怎么可能?两台机器上的操作系统都是WinXP SP2.
编辑:
我的代码是这样的:
DateTime date;
...
if (date == SqlDateTime.MinValue)
{
return "(any)";
}
else
{
return date.ToString();
}
Run Code Online (Sandbox Code Playgroud)
这段代码永远不会返回1753年1月1日,但确实如此(在某些机器上).我的代码不使用日期的分钟和秒,并且应始终保持默认值.
在我们的应用程序中,我们在网格中有一些ListViews和ListBoxes,您可以借助网格分割器更改控件的实际高度.这样做时,您可以排列ListBox的高度,因此其中一个项目不完全可见,因为ListView变短以显示它.
这是我们不想要的行为.
从我的研究到目前为止似乎没有办法阻止ListBox或ListView显示部分项目,但也许有人找到另一种方法来处理这个问题.当它只有一半可见时,该物品可能会触发它自己不可见.但是我们怎么能找到?
我们欢迎任何建议.
在magazin中,我读到了UIView类的一些不错的扩展.您将能够为任何UIView添加带角落弧度或投影的边框.
@implementation UIView (Extentions)
-(void) enableRoundRectsWithValue:(float)value
{
self.layer.masksToBounds = true;
self.layer.cornerRadius = value;
}
-(void) enableShadow
{
self.layer.masksToBounds = false;
self.layer.shadowOffset = CGSizeMake(0,2);
self.layer.shadowOpacity = 0.5;
}
@end
Run Code Online (Sandbox Code Playgroud)
虽然这些方法适合自己,但它们并不能很好地协同工作.我不能有角半径和阴影.至少不像你期望的那样.我想因为在一个方法中将masksToBounds设置为true而在另一个方法中设置为false.
如何获得具有圆角半径和阴影(具有相同圆角半径)的UIView?
在Objective-C中我们有类似的方法名称application:didFinishLaunchingWithOptions:,但在Swift中,相同工作的方法看起来不同.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
return true
}
Run Code Online (Sandbox Code Playgroud)
这个方法的名称是否只是application因为其他一切都只是参数?或者application didFinishLaunchingWithOptions名称中是否有空格?我正在寻找Apple文档中的官方答案,但我找不到一个.
当我的应用程序在静态void Main方法中启动时,我想确定是否按下了Alt或Ctrl等键,然后以某种Option-Mode启动Application.如何确定启动时是否按下了某个键?
我已经找到了一些样本,但它们都导入了一个windows dll,这是我不想做的事情.