3.2 关联ItemContainer和ItemsControl TargetType="{x:Type local:Repeater}"> x:Type local:Repeater}"> 属性,并把这个属性和RepeaterItem的Label和'LabelTemplate...Silverlight是WPF的简化版,Moonlight则是很久没维护的Silverlight的简陋版,这使得Moonlight反而成了很优秀的WPF教学材料。...当然,也可以参考Silverlight的实现,使用JustDecompile可以轻松获取Silverlight的源码,这也是很好的学习材料。
然后就可以使用刚才的自定义控件了,完整的mainpage.xaml应该象这个样子 x:Class="Silverlight.MainPage" xmlns="http:...这就是xaml中的style跟html的css不一样的地方,sl中的style没有优先级别(只能设置属性默认值),而且一个项目中,如果有相同x:Name定义的样式,运行时会报错(即样式的名称必须唯一)。...,这里表明这个控件的默认宽度是500,如果不写宽度,则控件默认宽度为500px 这里仅讲解了Width宽度属性,至于其它属性...比如同样是刚才的BBSComment控件,我们可以把generic.xaml中style2的定义改为: TargetType="local:BBSComment" x:Name="style2...接下来看一下所谓的视觉状态(VisualState),我们抛开官方的定义,以web开发者的眼光跟css来做一个类比,先看下这个常见的例子 type="text/css"> a:link
在Silverlight中,它的UI如下: ?...Silverlight的BusyIndicator: x:Name="VisibilityStates...PropertyMetadata的默认值应该尽量做到:值类型使用值类型的默认值,引用类型使用Null。...OverlayStyle和ProgressRingStyle 复合类型控件通常都会像这样为里面某个元素提供Style的属性,代替提供一大堆OverlayBackground,OverlayOpacity...为了使用户清楚这两个Style属性对应的TargetType,可以在BusyIndicator的类型声明上使用StyleTypedPropertyAttribute: [StyleTypedProperty
例如我需要MouseOver状态下文字不是红色而是紫色,可以使用下面的Style: x:Key="{x:Type Hyperlink}" TargetType="{x:Type...所以我认为没必要在代码里控制下划线的显示。 而无论Silverlight还是UWP,只要HyperlinkButton的Content不是纯文本就不能显示下划线,这应该也算一个功能缺陷。...,需要一个HyperlinButton被点击后导航到的NavigateUri属性,以及在OnClick函数中使用Process.Start在新进程打开目标Uri。...XAML的部分基本上照抄Silverlight的HyperlinkButton,不过关于下划线的处理稍有不同。... TargetType="TextBlock"> <
XAML 的Content内容属性 public class SelectedItemBase:BusinessBaseObject { public SelectedItemBase...属性在绑定时自动转换成CheckBox的CheckState,需要写一个转换器 using System; using System.Windows.Automation; using System.Windows.Data...{ public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo...转换成CheckBox的三种选中状态--> x:Key="BooleanToCheckStateConvertor...,每个标签页的内容通常是实例化一个单独的Xaml模块,可以考虑每个标签页的内容以Frame形式嵌入一个xaml <UserControl x:Class="Telerik.SampleIndex
如果用户输入的值无效,你可能希望在应用程序 用户界面 (UI) 上提供一些有关错误的反馈。...提供此类反馈的一种方法是设置Validation.ErrorTemplate附加到自定义ControlTemplate的属性。...如果没有设置Validation.ErrorTemplate,当控件包含无效数据时,WPF 将在无效控件周围显示如下图所示的红色边框,: ?...这样用户就能清楚这是一个无效的数据,直到用户输入有效的值这个红色的边框才会消失。...,它使用Binding [0].ErrorContent显示Validation中Errors附加属性(是一个ReadOnlyObservableCollection类型的集合)中第一条内容(也可以做成一个显示所有错误的
="text" value=""/> 但到了Silverlight中,要想直接将后台的变量绑定到某个控件上却是行不通的,通常我们得先定义一个类...,然后在类里定义属性,才能把类实例的属性绑定到控件: 简单绑定: 代码 using System; using System.Windows; using System.Windows.Controls...TextBlock> x:Name="btnChange...(silverlight中可不允许象aspx那样用TextBlock> x:Name
ilverlight本地化 简单的实现多语言版本的Silverlight应用。...日益国际化的同时,需要我们开发的应用根据不同的来访者显示不用的语言,Silverlight在这个方面就提供了很方便的支持。...return reader.Get((string)parameter); } public object ConvertBack(object value, Type... TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text... 编译应用程序 观察output窗口 发现我们的多语言资源文件并未打包到xap内 这里需要修改Silverlight的项目文件“*.csproj” 用记事本将其打开,找到“SupportedCultures
ToolKit(微软的开源项目),项目地址http://silverlight.codeplex.com/ 在线演示地址:http://silverlight.net/content/samples/...sl4/toolkitcontrolsamples/run/default.html 解决方案二: telerik公司的Rad for Silverlight商业控件(收费控件) 在线演示地址 http...://demos.telerik.com/silverlight/ 不管用哪一种方案,代码都是差不多的,为了实现数据绑定,先创建一个silverlight类库项目BusinessObject,定义数据项实体...XAML 的Content内容属性 public class PlaceItem : INotifyPropertyChanged { /// ...--数据节点模板--> x:Key="NodeTemplate"> TextBlock Text="{Binding
如果在后台代码定义了 Orientation 属性想要在 xaml 绑定到 ListView 的样式,可以尝试多创建一个帮助属性,用于在里面绑定 我在后台代码定义了属性 Orientation 请看代码...Value 绑定,这个和 WPF 不相同,建议使用静态的资源 Windows Presentation Foundation (WPF) and Microsoft Silverlight supported...在这里是几乎无法通过静态资源做到绑定的,那么如何让在后台代码修改的时候,可以修改 xaml 里面的 ListView 的列表显示方向绑定到后台的属性?..."{x:Bind Page1}"> 在样式里面多设置一个附加属性,这里的 Orientation 绑定是不会绑定的 TargetType="ListView...不过附加属性里面使用延迟还是不靠谱,可能延迟拿到的 ListView 的数据是空,所以建议的方法是修改附加属性 public class BindingHelper {
这个示例中除了ListBox控件其它都自带Header,但是ListBox没有Header属性,只好用一个TextBlock模仿它的Header。...属性的控件,就能统一Header的外观。...WPF中本来就有这个控件,它是Expander、GroupBox、TabItem等诸多拥有Header属性的控件的基类,十分方便好用。...定义HeaderedContentControl结构 比起WPF,借鉴Silverlight的HeaderedContentControl比较好,因为Silverlight的比较简单。...注意: 我移除了 x:DeferLoadStrategy="Lazy"这句,这个知识点比较适合放在有关性能的主题里讨论。
相对于WPF/Silverlight,UWP的动画系统可以说有大幅提高,不过本文无意深入讨论这些动画API,本文将介绍使用Shape做一些进度、等待方面的动画,除此之外也会介绍一些相关技巧。 1....使用StrokeDashArray做进度提示动画 StrokeDashArray用于将Shape的边框变成虚线,StrokeDashArray的值是一个double类型的有序集合,里面的数值指定虚线中每一段以... TargetType="TextBlock"> 属性本身做动画,但对附加属性中的类的属性则可以,例如以下这种写法应该是行得通的: x:Name...文字也是相同的原理,叠加两个相同的TextBlock,将前面那个放在一个无边框的ScrollViewer里再去改变ScrollViewer的高度。
} } UI需要通过Passed这个属性决定显示结果的文字颜色为红色或绿色,一般初学者最常见的做法是修改TestResult类,添加一个和Passed相关的属性: public class TestResult...语法只能用于TypeConverter支持的数据类型,而且这种写法还是太过HardCode。...它的代码也十分简单(其实这才是ConverterParameter的正确用法): public object Convert(object value, Type targetType, object...8. targetType参数 targetType参数指转换后的目标类型,使用这个参数可以实现一个简单的Value Converter: public class ValueConverter : IValueConverter...很多时候我都会把XAML的格式化设置成“将每个属性分行放置”,如下图: ? 这样上面两个TextBlock的XAML就清晰许多了: ?
如果展示类似这种比较cool的图片轮换效果,用RadTransitionControl控件就对了,它提供的过渡效果非常cool!...原理并不复杂,可参见以前写的 Silverlight之ListBox/Style学习笔记--ListBox版的图片轮换广告. xaml部分: 的样式--> x:Key="PhotoListStyle" TargetType="ListBox"> 的样式--> x:Key="PhotoListItemStyle" TargetType="ListBoxItem"> TextBlock Text="{Binding Text}" ToolTipService.ToolTip="{Binding
幸好十年前ScottGu分享过一个简单的方案,很有参考价值: WPF & Silverlight LOB Form Layout - Searching for a Better Solution:...3.1.2 FormItem的具体实现 TargetType="local:FormItem"> 的属性(属性值继承使元素树中的子元素可以从父元素获取特定属性的值,并继承该值),也就是说如果写成formItem.Style=null它的Style就会成为Null,而不能继承父元素中设置的全局样式...,FormItem还可以绑定表单元素的依赖属性。...参考 ScottGu's Blog - Nov 6th Links_ ASP.NET, ASP.NET AJAX, jQuery, ASP.NET MVC, Silverlight and WPF ItemsControl
-- 弹出提示窗体模板 --> x:Key="AlertDialogBaseTemplate" TargetType="{x:Type Window}"> x:Key="AlterDailogBaseStyle" TargetType="{x:Type view:AlterDialogWindow}" BasedOn...属性设置为None来隐藏默认的非工作区(控制区),然后再窗口的Template中定义一个两行的Grid,第一行模拟窗口非工作区的标题栏,本例中仅放一个关闭按钮。...="VerticalAlignment" Value="Center" /> TargetType="{x:Type toolkit...="{x:Type TextBlock}"> <Setter
强化高亮的功能 上一篇文章介绍了使用附加属性实现TextBlock的高亮功能,但也留下了问题:不能定义高亮(或者低亮)的颜色。...如果对应属性的类型是XAML内置类型(即Boolea,Char,String,Decimal,Single,Double,Int16,Int32,Int64,TimeSpan,Uri,Byte,Array...等类型),XAML解析器直接将字符串转换成对应值赋给属性;对于其它类型,XAML解析器需做更多工作。...检查属性声明上的TypeConverterAttribute。 2. 如果属性声明中没有TypeConverterAttribute,检查类型声明中的TypeConverterAttribute。...属性声明上TypeConverterAttribute的优先级高于类型声明。如果以上两步都找不到类型对应的TypeConverterAttribute,XAML解析器将会报错:属性"*"的值无效。
本文告诉大家如何使用附加属性修改按钮按下去时的背景 先让大家看个图片,下面来告诉大家如何做 首先在后台创建一个附加属性 public class ButtonBrush {...实际重写按钮的样式可以看到,在按下时可以修改颜色 x:Key="Style.OkOperationButton" TargetType="ButtonBase...="{x:Type ButtonBase}"> x:Name="Border" Width="{TemplateBinding Width...x:Name="TextBlock" Text="{TemplateBinding Content}"...="{x:Type ButtonBase}"> x:Name="Border" Width="{TemplateBinding Width
领取专属 10元无门槛券
手把手带您无忧上云