我的XAML中有一个矩形,并希望Canvas.Left在后面的代码中更改其属性:
<UserControl x:Class="Second90.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300" KeyDown="txt_KeyDown">
<Canvas>
<Rectangle
Name="theObject"
Canvas.Top="20"
Canvas.Left="20"
Width="10"
Height="10"
Fill="Gray"/>
</Canvas>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
private void txt_KeyDown(object sender, KeyEventArgs e)
{
theObject.Canvas.Left = 50;
}
Run Code Online (Sandbox Code Playgroud)
有谁知道这样做的语法是什么?
我有一个我正在使用的Web应用程序(带有C#的ASP.NET2.0,使用VS2005).一切都很好,突然间我得到了错误:
Error 1 The name 'Label1' does not exist in the current context
每次我在页面的代码隐藏中使用控件时,还有43个其他类型的.
这只发生在1页.就好像代码隐藏不能识别控件一样.另一件有趣的事情是intellisense没有拿起任何控件.
我试图清理解决方案文件,删除obj文件,从项目中排除文件然后重新添加它们,关闭VS并重新启动它,甚至重新启动我的计算机,但这些都没有用.
我有一个后面有C#代码的ASP.Net页面.
但是,我被要求不使用代码 - 因此在SharePoint中部署更容易.
有没有办法在ASP.Net页面中包含C#代码,而不使用单独的代码隐藏文件?
我在我的窗口资源中定义了一个自定义集合,如下所示(在Sketchflow应用程序中,因此窗口实际上是一个UserControl):
<UserControl.Resources>
<ds:MyCollection x:Key="myKey" x:Name="myName" />
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
我希望能够在代码隐藏中引用这个集合,我期望它是由x:Name,但我似乎无法访问它.
我可以使用它来获取它的引用
myRef = (MyCollection) this.FindName("myKey");
Run Code Online (Sandbox Code Playgroud)
但这似乎是hackish.这是不好的做法,还有什么会更好?谢谢 :)
我想在代码中生成相当于XAML中的这个:
<TextBlock
Text="Title:"
Width="{Binding FormLabelColumnWidth}"
Style="{DynamicResource FormLabelStyle}"/>
Run Code Online (Sandbox Code Playgroud)
我可以做文本和宽度,但是如何将动态资源分配给样式:
TextBlock tb = new TextBlock();
tb.Text = "Title:";
tb.Width = FormLabelColumnWidth;
tb.Style = ???
Run Code Online (Sandbox Code Playgroud) 我正在使用aspx.如果我有HTML如下:
<div id="classMe"></div>
Run Code Online (Sandbox Code Playgroud)
我希望通过代码隐藏文件动态添加一个css类,即在Page_Load上.可能吗?
在文章中,使用Model-View-ViewModel设计模式的WPF应用程序,Josh Smith的作者说:
(1)在设计良好的MVVM体系结构中,大多数视图的代码隐藏应该是空的,或者最多只包含操作该视图中包含的控件和资源的代码.(2)有时还需要在与ViewModel对象交互的View的代码隐藏中编写代码,例如挂钩事件或调用一个本来很难从ViewModel本身调用的方法.
我的问题是,在(1),为什么空代码被认为是一个设计良好的MVVM.(听起来空的代码隐藏总是很好.)
编辑:我的问题是,如下,为什么像的方法AttachedCommandBehavior或者InvokeCommandAction是试图避免代码隐藏编码.
让我解释一下细节.
就(1)而言,我会认为以下情况来自AttachedCommandBehavior.由于Border没有实现ICommandSourcefor MouseRightButtonDown,你不能通常绑定事件和ICommand,但可以使用AttachedCommandBehavior.
<!-- I modified some code from the AttachedCommandBehavior to show more simply -->
<Border>
<local:CommandBehaviorCollection.Behaviors>
<local:BehaviorBinding Event="MouseRightButtonDown"
Command="{Binding SomeCommand}"
CommandParameter="A Command on MouseRightButtonDown"/>
</local:CommandBehaviorCollection.Behaviors>
</Border>
Run Code Online (Sandbox Code Playgroud)
要么
我们可以这样做System.Windows.Interactivity.InvokeCommandAction.
<Border xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseRightButtonDown">
<i:InvokeCommandAction Command="{Binding SomeCommand}"
CommandParameter="A Command on MouseRightButtonDown"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Border>
Run Code Online (Sandbox Code Playgroud)
但,
我们使用以下XAML及其代码隐藏Border_MouseRightButtonDown方法,该方法与上述(2)Josh Simth相关联.
<Border MouseRightButtonDown ="Border_MouseRightButtonDown"/>
Run Code Online (Sandbox Code Playgroud)
我认为使用上面的代码隐藏并不坏,只是因为它们之间的区别只是绑定命令或添加事件处理程序.
你怎么看待这件事?
我有一个母版页,其中包含状态消息的标签.我需要从不同的.aspx页面设置状态文本.如何从内容页面完成?
public partial class Site : System.Web.UI.MasterPage
{
public string StatusNachricht
{
get
{
return lblStatus.Text;
}
set
{
lblStatus.Text = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我试过这个,但是没有成功使它工作:
public partial class DatenAendern : System.Web.UI.Page
{
var master = Master as Site;
protected void Page_Load(object sender, EventArgs e)
{
if (master != null)
{
master.setStatusLabel("");
}
}
protected void grdBenutzer_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
//some code
if (master != null)
{
master.setStatusLabel("Passwort erfolgreich …Run Code Online (Sandbox Code Playgroud) 我不喜欢使用XAML.我更喜欢用C#编写所有代码,但我认为我做错了.
在哪些情况下,最好使用XAML,何时使用C#?你有什么经历?
我正在尝试访问内容控件的控件模板内的用户控件.特别:
<ContentControl x:Name="MyList" >
<ContentControl.Template>
<ControlTemplate x:Name="MyControlTemplate">
<Border RenderTransformOrigin="0,0" x:Name="border">
<UserControls:MyControl x:Name="MyControlName" Width="100" ViewModel="{Binding}" />
Run Code Online (Sandbox Code Playgroud)
我可以访问this.MyList,但它说明了找不到.MyControlName.在这种情况下如何从代码隐藏中访问MyControlName对象?
谢谢!
code-behind ×10
c# ×6
wpf ×5
asp.net ×4
xaml ×4
.net ×1
class ×1
css ×1
master-pages ×1
mvvm ×1
resources ×1
sharepoint ×1
styles ×1
syntax ×1