我有一个相当简单的UserControl我已经做了(原谅我的Xaml我只是学习WPF),我想滑出屏幕.为此,我设置了一个转换变换动画(我也尝试将Panel设置为画布的子画面,并使用相同的结果设置X位置的动画),但即使在相当快的新计算机上,面板也会非常急动.滑入和滑出的最佳方式是什么(最好使用KeySplines使其随惯性移动)而不会产生晃动.我面板上只有8个按钮,所以我认为这不会是一个太大的问题.
这是我正在使用的Xaml,它在Kaxaml中运行良好,但它非常生涩和缓慢(以及在WPF应用程序中编译运行时的急躁和缓慢).
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="1002" Height="578">
<UserControl.Resources>
<Style TargetType="Button">
<Setter Property="Control.Padding" Value="4"/>
<Setter Property="Control.Margin" Value="10"/>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Name="backgroundGrid" Width="210" Height="210" Background="#00FFFFFF">
<Grid.BitmapEffect>
<BitmapEffectGroup>
<DropShadowBitmapEffect x:Name="buttonDropShadow" ShadowDepth="2"/>
<OuterGlowBitmapEffect x:Name="buttonGlow" GlowColor="#A0FEDF00" GlowSize="0"/>
</BitmapEffectGroup>
</Grid.BitmapEffect>
<Border x:Name="background" Margin="1,1,1,1" CornerRadius="15">
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0" Color="#FF0062B6"/>
<GradientStop Offset="1" Color="#FF0089FE"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Border.Background>
</Border>
<Border Margin="1,1,1,0" BorderBrush="#FF000000" BorderThickness="1.5" CornerRadius="15"/>
<ContentPresenter HorizontalAlignment="Center" Margin="{TemplateBinding Control.Padding}"
VerticalAlignment="Center" Content="{TemplateBinding ContentControl.Content}"
ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<Canvas>
<Grid x:Name="Panel1" Height="578" …Run Code Online (Sandbox Code Playgroud) 对于基于桌面的应用程序,执行自动更新的最佳做法是什么?目前,我们下载所有文件,然后复制并注册(如果com dll)到他们各自的目录.
我查看了Google Chrome更新方法.它似乎首先将压缩文件下载到目录中,然后解压缩所有文件.此外,他们有一个设置应用程序,似乎用于进行更新.此外,他们创建一个映射到更新版本的目录,如1.0.154.43,但它们保留旧版本的目录.
是否List<T>始终保证项目将按枚举时添加的顺序返回?
更新:感谢所有人的回答,让我放心.我List<T>用.NET Reflector快速戳了一下这个类(应该首先应该这样做),实际上底层存储是T(T[])的数组.
我使用大量数据文件,有时我只需要知道这些文件中的行数,通常我打开它们并逐行读取它们直到我到达文件末尾
我想知道是否有更聪明的方法来做到这一点
给定一个仅在程序设置中使用的假设实用程序类:
class MyUtils {
private static MyObject myObject = new MyObject();
/*package*/static boolean doStuff(Params... params) {
// do stuff with myObject and params...
}
}
Run Code Online (Sandbox Code Playgroud)
当myObject不再被使用时,它会被垃圾收集,还是会在程序的生命周期中保留?
如何为C#应用程序创建产品密钥?
我需要创建一个每年更新的产品(或许可证)密钥.另外,我需要为试用版创建一个.
有关:
在ASP.NET 页面LifeCycle中有Page.LoadComplete事件.
MSDN文档说"将此事件用于需要加载页面上所有其他控件的任务".这到底是什么意思?"最佳实践"会说LoadComplete应该用于什么?
您将如何在ASP.NET MVC视图中支持外部可组合部分?
这是什么意思?想想"每个页面上的登录框"或"iGoogle".这些东西需要位于每个控制器/视图外部的某些位置.
一种方法是在视图中添加组件,如下所示:
<% foreach (var component in GetComponents()) {%>
<%= Html.RenderPartial(component.ViewName, component.ViewData)%>
<%} %>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我正在寻找一种方法,让每个组件的控制器提供viewname和viewdata,而不是显示它们的视图的控制器.您可以建议的任何完全不同的解决方案也会引起关注.过滤器,WebForms等
更新:我会试着用一个例子来解释我想要解决的问题.我会选择登录功能.
在典型的webforms应用程序中,这可以是一个用户控件,它在页面生命周期的load事件中检索适当的数据并更新一些UI控件.点击后页面将回发,我们可以在同一用户控件中的点击事件中对发布的信息进行操作.
从我目前对ASP.NET MVC样式的理解来看,首先接受请求的控制器将检索适当的数据并将其传递给视图,然后视图将其传递给登录部分视图.登录视图将定义一个表单,其后置操作指向登录控制器的登录操作.在发布信息时使用的登录操作,我们可以选择一起使用一些漂亮的方案,原来的控制器传递请求.
我假设有一种比上面更聪明的方法,不需要我将控制器逻辑放在视图/母版页中.
我在win2008服务器上使用VS2008开发了一个非常好的MVC Beta应用程序.当我尝试将其部署到IIS6虚拟目录时,我的麻烦就开始了.在目标win2003服务器盒上安装MVC Beta后,我能够从虚拟目录中显示应用程序,但缺少所有图像和css属性.占位符建议图像应位于根网站而不是应用程序运行的虚拟目录.
实际路径:
http://localhost/Content/images/<myimage>.png
Run Code Online (Sandbox Code Playgroud)
而不是:
http://localhost/<virtualdirectory>/Content/images/<myimage>.png
Run Code Online (Sandbox Code Playgroud)
如果我在自己的网站(Root)中安装应用程序,一切正常.我可以通过将Web属性设置为"使用Visual Studio开发服务器"/特定端口/并添加虚拟路径在VS2008中复制它.
我还可以通过将项目上的Web属性设置为"使用本地IIS Web服务器"并创建虚拟目录来复制它.
关于mvc url路由,我有一些明显的遗漏.这里的任何指导将不胜感激.
.net ×2
asp.net-mvc ×2
java ×2
animation ×1
asp.net ×1
auto-update ×1
c# ×1
collections ×1
composition ×1
iis-6 ×1
javascript ×1
large-files ×1
license-key ×1
line-numbers ×1
list ×1
performance ×1
routing ×1
static ×1
wpf ×1
xaml ×1