<Style targettype="ComboBox"> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Foreground" Value="Black" /> <Setter Property="margin" Value="5" /></Style><Style targettype="TextBlock"> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="margin" Value="5" /> <Setter Property="FontSize" Value="20" /> <Setter Property="FontWeight" Value="Bold" /> <Setter Property="Foreground" Value="White" /></Style><Style targettype="TextBox"> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="margin" Value="5" /> <Setter Property="Height" Value="35" /> <Setter Property="FontSize" Value="20" /></Style>[...]<ComboBox Selectedindex="{Binding Path=BirthdayDay,UpdateSourceTrigger=PropertyChanged,FallbackValue=0}" ItemsSource="{Binding Path=Days,UpdateSourceTrigger=PropertyChanged}" /><ComboBox Selectedindex="{Binding Path=BirthdayMonth,FallbackValue=0}" ItemsSource="{Binding Path=Months,UpdateSourceTrigger=PropertyChanged}" /><ComboBox Selectedindex="{Binding Path=BirthdayYear,FallbackValue=0}" ItemsSource="{Binding Path=Years,UpdateSourceTrigger=PropertyChanged}" />
结果很混乱:
它是否以某种方式与TextBlock样式发生冲突?
由于应用了FontWeight,似乎有连接?!
注意:
我可以看到Binding不同的唯一“明显”差异:
Day Year是整数的集合,而Month是字符串的集合?!
解决方法 这是由于数据的类型以及您没有定义显示数据的方式这一事实:ItemTemplate,ItemTemplateSelector或StringFormat如果您添加< Setter Property =“ItemStringFormat”Value =“{} {0}”>< / Setter>
所有组合框都将正确显示.
ItemsControl.UpdateSelectionBoxItem是负责在选择框中显示数据的函数,但我无法确定在提取和显示Item的过程中它是如何以不同的方式处理int的.
无论如何,如果我把它弄好的话,int显示为TextBlocks,String显示为TextBox,这就是你使用你的Style的原因.
总结以上是内存溢出为你收集整理的c# – 样式未正确应用全部内容,希望文章能够帮你解决c# – 样式未正确应用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)