WPF Visibility.Collapsed
和Visibility.Hidden
WPF 之间有什么区别?
我遇到了绑定到PasswordBox的问题.这似乎是一个安全风险,但我正在使用MVVM模式,所以我希望绕过这个.我在这里找到了一些有趣的代码(有没有人用过这个或类似的东西?)
http://www.wpftutorial.net/PasswordBox.html
它在技术上看起来很棒,但我不确定如何检索密码.
我基本上有我的LoginViewModel
for Username
和属性Password
.Username
很好,正在工作,因为它是一个TextBox
.
我按照说明使用了上面的代码并输入了这个
<PasswordBox ff:PasswordHelper.Attach="True"
ff:PasswordHelper.Password="{Binding Path=Password}" Width="130"/>
Run Code Online (Sandbox Code Playgroud)
当我有了PasswordBox
a TextBox
,Binding Path=Password
然后我的房产LoginViewModel
被更新了.
我的代码很简单,基本上我有一个Command
for my Button
.当我按下它时会CanLogin
被调用,如果它返回true,则调用它Login
.
你可以看到我检查我的房产在Username
这里工作得很好.
在Login
我一起发送到我的服务Username
和Password
,Username
包含数据从我View
却Password
是Null|Empty
private DelegateCommand loginCommand;
public string Username { get; set; }
public string Password { get; set; }
public ICommand LoginCommand
{
get
{ …
Run Code Online (Sandbox Code Playgroud) 创建一个相对简单的数据输入表单,只想用水平线(与HTML中的HR标记不同)将某些部分分开,这些部分会拉伸表单的全长.
我试过这个:
<Line Stretch="Fill" Stroke="Black" X2="1"/>
Run Code Online (Sandbox Code Playgroud)
由于父控件不是固定宽度,因此该行会使窗口拉伸到屏幕的整个宽度.
有没有一种简单的方法可以在不修复父控件/窗口宽度的情况下执行此操作?
WPF的ListBox和ListView有什么区别?我发现他们的属性没有任何显着差异.有不同的典型用途吗?
我想知道我是否可以在水平导向的StackPanel中有2个控件,以便正确的项目应该停靠在StackPanel的右侧.
我尝试了以下但它不起作用:
<StackPanel Orientation="Horizontal">
<TextBlock>Left</TextBlock>
<Button Width="30" HorizontalAlignment="Right">Right<Button>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段中,我希望Button停靠在StackPanel的右侧.
注意:我需要使用StackPanel,而不是Grid等.
我按照这个关于如何将滚动条添加到ItemsControl的小"教程",它在Designer视图中工作,但是在我编译和执行程序时却没有(只显示前几个项目,没有滚动条可以查看更多 - 甚至当VerticalScrollbarVisibility设置为"Visible"而不是"Auto"时).
关于如何解决这个问题的任何想法?
这是我用来显示我的项目的代码(通常我使用Databinding,但是为了查看我的Designer中的项目,我手动添加它们):
<ItemsControl x:Name="itemCtrl" Style="{DynamicResource UsersControlStyle}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Top">
</StackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<uc:UcSpeler />
<uc:UcSpeler />
<uc:UcSpeler />
<uc:UcSpeler />
<uc:UcSpeler />
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
这是我的模板:
<Style x:Key="UsersControlStyle" TargetType="{x:Type ItemsControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<Border SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ScrollViewer VerticalScrollBarVisibility="Visible">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud) 我正在尝试设置/获取我的RichTextBox的文本,但当我想获得test.Text时,Text不在其属性列表中...
我在C#中使用代码(.net framework 3.5 SP1)
RichTextBox test = new RichTextBox();
Run Code Online (Sandbox Code Playgroud)
不能有 test.Text(?)
你知道怎么可能吗?
我在XAML(而不是Silverlight)中使用DataGrids和可调整大小的列,如果用户调整屏幕大小,DataGrid将展开.
目前,如果所有DataGrid列的宽度小于DataGrid的宽度,我会看到一个额外的"列",它不可点击并且没有用处.
有谁知道如何使一列始终调整大小以填充所有剩余空间?
如何TextBlock
在WPF应用程序中实现控件内文本的格式化?
例如:我想要粗体显示某些单词,斜体显示某些单词,有些颜色不同,例如:
我的问题背后的原因是这个实际问题:
lblcolorfrom.Content = "Colour From: " + colourChange.ElementAt(3).Value.ToUpper();
Run Code Online (Sandbox Code Playgroud)
我希望字符串的第二部分是粗体,我知道我可以使用两个控件(Labels,TextBlocks等),但我不愿意,因为已经使用了大量的控件.
wpf ×10
wpf-controls ×10
c# ×5
xaml ×2
.net ×1
alignment ×1
datagrid ×1
itemscontrol ×1
layout ×1
mvvm ×1
passwords ×1
richtextbox ×1
scrollviewer ×1
stackpanel ×1
visibility ×1