我有一个XML节点,其值是一个空格.例:
<sampleNode> </sampleNode>
Run Code Online (Sandbox Code Playgroud)
我正在使用Serializer从XML文档中获取数据以将其存储在对象中.现在,我面临的问题是:如果XML节点值只包含空格,就像上面的示例节点一样,序列化程序将其解释为string.Empty.
我怎么能克服这个?我需要得到实际的空白区域,即"".谢谢你!
我有一个画布和一个红色矩形.
Rectangle有一个MouseDown事件处理程序实现:
private void RedRectangle_MouseDown(object sender, MouseButtonEventArgs e)
{
CreateMyBorder();
}
Run Code Online (Sandbox Code Playgroud)
该CreateMyBorder方法应该创建一个Border与画布上的矩形具有相同大小和位置的UIElement ,即它应该覆盖红色矩形.
复制Width和Height红色矩形的属性和设置它们的Border元件是容易的:
myBorder.Height = RedRectangle.Height;
myBorder.Width = RedRectangle.Width;
Run Code Online (Sandbox Code Playgroud)
但是,经过2个小时的试错后,我无法在画布上复制红色矩形的位置!预期的:
double x = RedRectangle.GetValue(Canvas.Left);
double y = RedRectangle.GetValue(Canvas.Top);
myBorder.SetValue(Canvas.Left, x);
myBorder.SetValue(Canvas.Top, y);
Run Code Online (Sandbox Code Playgroud)
不起作用x和y变量值NaN.为什么?
请帮助,我无法相信,UIElement在面板上获得和设置位置这样的微不足道的事情可能会非常恼人.谢谢.
在模型层中,我定义了一个枚举:
public enum MemberStatus
{
ActiveMember = 0,
InactiveMember = 1,
Associate = 2,
BoardMember = 3,
Alumni = 4
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我有一个组合框,其中填充了这些枚举值:
<UserControl.Resources>
<ObjectDataProvider
x:Key="memberStatusesDataProvider"
ObjectType="{x:Type system:Enum}"
MethodName="GetValues">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="model:MemberStatus" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</UserControl.Resources>
...
<ComboBox
ItemsSource="{Binding Source={StaticResource memberStatusesDataProvider}}"
SelectedItem="{Binding Path=Status}" />
...
Run Code Online (Sandbox Code Playgroud)
这导致组合框的选择与枚举中定义的值完全相同.虽然这是我最初的目标,但我希望为用户提供更好的演示,如下所示:
此外,如果应用程序中的语言发生更改,我需要使用该语言的枚举值.为了解决这个问题,我想到的第一件事就是为MemberStatus枚举值创建一个转换器.我在这个主题上发现了这篇美丽的文章:http://www.codeproject.com/KB/WPF/FriendlyEnums.aspx但是MVVM模式表明根本不应该创建它们 - 我同意这一点.但是,在这个例子中,这种肯定对我没有用.
它应该如何完成?谢谢.
我有一个房产
public bool AutoRenew
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
在页面中:
<input type="checkbox" checked='<%# Eval("AutoRenew") %>' />
Run Code Online (Sandbox Code Playgroud)
但总是检查,即使属性的值是false.
我尝试了以下变化:
<input type="checkbox" checked='<%# Convert.ToBoolean(Eval("AutoRenew")) %>' />
<input type="checkbox" checked='<%# Convert.ToBoolean(Eval("AutoRenew")) == true %>' />
<input type="checkbox" checked='<%# (Boolean)Eval("AutoRenew") %>' />
Run Code Online (Sandbox Code Playgroud)
但没有任何作用,它一直在检查.表达式应该是什么样的?
编辑:这是页面中有问题的部分:
...
<asp:ListView ID="MyListView" runat="server">
<LayoutTemplate>
<table class="ms-listviewtable" style="background-color: White;">
<tr class="ms-viewheadertr ms-vhltr">
<th class="ms-vh-icon" scope="col">
<input type="checkbox" />
</th>
<th class="ms-vh2">
<div class="ms-vh-div"><a>Training Item</a></div>
</th>
<th class="ms-vh2">
<div class="ms-vh-div"><a>Training Task Type</a></div>
</th>
<th class="ms-vh2">
<div class="ms-vh-div"><a>Due Date</a></div>
</th> …Run Code Online (Sandbox Code Playgroud) 它System.Drawing.Point接受int参数值X和Y坐标参数。
这不是我需要的。
然后是System.Windows.Point它接受和double的值。这就是我需要的,但是我不确定这是否是我应该在类库项目中使用的结构。XY
最后,我发现System.Drawing.PointF,但它接受和坐标参数float的值。我更愿意使用.XYdouble
最佳实践是什么?
基本上,我有一个 WPF 项目和一个类库项目,用作 UI 的模型。我需要记住模型中的矩形坐标(双,双)。
好的,我知道这个主题有很多帖子.但是,它们都没有为我的问题提供解决方案:我不想只关闭我的显示器,我希望我的代码关闭特定的显示器.大多数人提到的网址http://fci-h.blogspot.com/2007/03/turn-off-your-monitor-via-code-c.html在这里没有用,因为它关闭了所有的显示.
所以,我有我的笔记本电脑屏幕和一个额外的外接显示器.当我正在看电影时,我将显示屏切换到外接显示器,而我的笔记本电脑屏幕变黑了,然而,它仍然在黑暗中发光.我想把它关掉.有人可以帮忙吗?
编辑:有没有办法来实现这一点,这意味着它不必用.Net编写.基本上,我只需要一个能够交替关闭和打开特定显示器的.exe文件.
我有一个网格,一个窗口根元素.我想应用一个动画,它会在5秒内将背景颜色从白色变为绿色.这是我做的:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ColorAnimation animation;
animation = new ColorAnimation();
animation.From = Colors.White;
animation.To = Colors.Green;
animation.Duration = new Duration(TimeSpan.FromSeconds(5));
rootElement.BeginAnimation(Grid.BackgroundProperty, animation);
}
Run Code Online (Sandbox Code Playgroud)
代码不起作用.什么都没有改变.我哪里弄错了?谢谢.
我创建了一个窗口,其中包含一个ListView显示人员集合的窗口.还有3个TextBoxes应该显示人的名字和姓氏,以及年龄.最后,有一个Button保存在这些TextBoxes中输入的新人数据.
ListView通过实现MVVM来加载人员.奇迹般有效!此外,通过单击Button也可以通过MVVM 将新人添加到集合中.
但是有两个用例,我不确定使用命令是更明智的,即MVVM,还是简单的代码隐藏.用例是:
ListView,TextBoxes应显示人员详细信息.TextBox显示人的年龄的数字时,应警告他或她输入的数据不正确.我怀疑是否应该使用MVVM或代码隐藏的原因是因为两个用例都与仅视图(GUI)相关,即与模型或应用程序业务逻辑没有交互性.该ListView项目源绑定到人的集合ObservableColleciton<Person>,并与被选择的人的所有数据已经传递到当视图ListView中填充的物品.在第二个用例中,再次,没有必要转到ViewModel,以便让它触发有关错误用户输入的消息框.如何在ViewModel类的age依赖属性中创建验证回调呢?
感谢您的所有澄清.
我已经通过以下方式实现了移动网格控件的动画:
<Grid
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger
Binding="{Binding ElementName=rootLayout, Path=IsVisible}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation
Storyboard.TargetProperty="Margin"
From="-500,0,0,0"
To="0,0,0,0"
Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Border
Grid.RowSpan="2"
Background="Black"
CornerRadius="6" >
<Border.Effect>
<DropShadowEffect />
</Border.Effect>
</Border>
<TextBlock
Grid.Row="0"
Width="400"
Height="200"
Margin="20,20,20,10"
Text="{Binding Path=MessageText}" />
<Button
Grid.Row="1"
Margin="20,5,20,15"
HorizontalAlignment="Right"
Width="75"
Content="OK"
Command="{Binding Path=CloseDialogCommand}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
动画效果很好,但很难看.它是摇摇欲坠/紧张/生涩,它看起来真的很不专业.有没有办法改善这个?我是否使用正确的方法动画Margin物业的价值变化以移动网格?我读过RenderTransform,但我不知道如何在我的情况下使用它.
此外,动画看起来不自然.我知道这可以改进,但我不知道如何.这些属性是什么,它们可以帮助我增强我的动画:
AccelerationRatioDecelerationRatioEasingFunctionIsAdditiveIsCumulativeSpeedRatio 谢谢你的帮助!
PS我试图在XAML中尽可能多地放入代码,所以我更喜欢这种方法,但实际上,如果有任何改进的话......
我有一节课:
public class TempClass
{
public int Row
{
get { return row; }
set { row = value; }
}
public int Column
{
get { return column; }
set { column = value; }
}
public string Value
{
get { return this.value; }
set { this.value = value; }
}
int row;
int column;
string value;
public TempClass(int row, int column, string value)
{
this.row = row;
this.column = column;
this.value = value;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个List<TempClass> …