vs2010的wpf中,textbox中的字体怎么通过fontdialog来设置?

vs2010的wpf中,textbox中的字体怎么通过fontdialog来设置?,第1张

WPF中TextBox没有Font属性,他拆分为了多个小属性FontSize等?

为什么你需要用FontDilog来设置呢,WPF已经提供了直观的设置界面,如下:

用WPF的ComboBox控件的时候,需要用到TextChanged属性,但是这个属性属于TextBox控件,不用担心,ComboBox中存在TextBox,所以关键问题就是如何找到ComboBox中的TextBox控件。 ComboBox控件的默认组成:第一层(1个控件):SystemWindowsControlsGrid第二层(2个控件):SystemWindowsControlsPrimitivesPopup;MicrosoftWindowsThemesListBoxChrome;SystemWindowsControlsTextBox;SystemWindowsControlsPrimitivesToggleButton Content: IsChecked:False控件都是按顺序排列的,所以取得TextBox控件如下:((TextBox)VisualTreeHelperGetChild(VisualTreeHelperGetChild(thiscbServer, 0), 2))TextChanged += new TextChangedEventHandler(SetDataBaseIsEnabled); 注意:这段代码要放在Window_Loaded()事件中,不能放在页面的构造方法中。就可以为ComboBox控件添加上TextChanged属性了。PS:查找ComboBox中控件的代码:private void button1_Click(object sender, RoutedEventArgs e){ for (int i = 0; i < VisualTreeHelperGetChildrenCount(thiscbServer); i++) { DependencyObject o1 = VisualTreeHelperGetChild(thiscbServer, i); for (int j = 0; j < VisualTreeHelperGetChildrenCount(o1); j++) { DependencyObject o2 = VisualTreeHelperGetChild(o1, j); } }}

据说由于本地的silverlight_developer是50的版本,但是SDK全部都是40版本,因此导致安装的时候报字符串过长或过短,将本地silverlight50删除,安装40版本即可 。。。

添加一个key就行了:
<Style x:Key="CustomTextBlock" TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="2"/>
<Setter Property="FontSize" Value="15"/>
</Style>
使用时指定Key,未指定的就不会有影响了:
<TextBlock Style="{StaticResource CustomTextBlock}"/>
希望对你有帮助,还有疑问请追问或是Hi

以下是一种实现动态适应长度的滚动字幕的方式:1在WPF中,可以使用ScrollViewer和TextBlock控件来实现滚动字幕。将TextBlock放在ScrollViewer中,并设置TextBlock的Width属性为DoublePositiveInfinity,这样TextBlock将占用整个ScrollViewer的宽度。2在代码中,可以使用DoubleAnimation动画来控制TextBlock的水平偏移量,从而实现滚动的效果。设置动画的From属性为ScrollViewer的宽度,To属性为负的TextBlock的宽度,这样动画将从最右边开始,滚动到最左边。3在代码中,需要动态计算TextBlock的宽度,然后根据宽度设置动画的Duration属性,以确保滚动速度与字幕长度相匹配。4由于字幕内容随时可能发生变化,需要使用Binding绑定的方式来动态更新动画的From和To属性,以确保始终滚动到最右边和最左边。
以下是一些示例代码:XAML代码:<ScrollViewer Width="200" Height="30" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"> <TextBlock x:Name="scrollText" Text="{Binding ScrollText}" Width="Auto" TextWrapping="NoWrap" /></ScrollViewer>
C#:
private void StartScrolling()
{
// 计算TextBlock的宽度
scrollTextMeasure(new Size(doublePositiveInfinity, doublePositiveInfinity));
scrollTextArrange(new Rect(scrollTextDesiredSize));
double textWidth = scrollTextActualWidth;
// 创建DoubleAnimation动画
DoubleAnimation animation = new DoubleAnimation();
animationFrom = scrollViewerActualWidth;
animationTo = -textWidth;
animationDuration = TimeSpanFromSeconds(textWidth / 50); // 滚动速度大约为50像素每秒
animationCompleted += (sender, e) => { StartScrolling(); };
// 绑定动画的From和To属性
BindingOperationsSetBinding(animation, DoubleAnimationFromProperty, new Binding() { Source = scrollViewer, Path = new PropertyPath("ActualWidth") });
BindingOperationsSetBinding(animation, DoubleAnimationToProperty, new Binding() { Source = scrollText, Path = new PropertyPath("ActualWidth"), Converter = new NegateConverter() });
// 启动动画
scrollTextBeginAnimation(CanvasLeftProperty, animation);
}
public class NegateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return -SystemConvertToDouble(value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return -SystemConvertToDouble(value);
}
}

1: WPF不支持直接实例化TTF文件。TTF 字体需要先安装到系统中。(想让程序自动装TTF请看这里>

2:然后把装好的字体名称放入资源中。

3:参考我给出的代码设置FontFamily属性:

。。。。。。。。。。。。。。。。。。

 public MainWindow()
        {
            InitializeComponent();
            FontFamily family=GetFontFamily("Your installed TTF font name");
            thisFontFamily = family  thisFontFamily;
        }
 
        private FontFamily GetFontFamily(String resourceKey)
        {
            if (StringIsNullOrEmpty(resourceKey))
            {
                return null;
            }
            FontFamily fontFamily = null;
            Object ttfName = thisTryFindResource(resourceKey);
            if (ttfName != null)
            {
                fontFamily = new FontFamily(ttfNameToString());
            }
            return fontFamily;
        }

。。。。。。。。。。。。。。。。。。。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13378603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存