none
Textblock 在后台绑定的时候如何设置换行呢? RRS feed

  • 问题

  • 如果直接赋值,可以用\n来换行

    比如:this.TextBlock1.Text = "AAAAAAA\nBBBBBBBB";

    但当绑定的时候用\n会提示路径错误,用@转意或\\n则没有换行效果

    在绑定时如何指定换行呢?


    My Blog:http://sun8134.cnblogs.com

    2014年12月25日 2:22

答案

  • 用 Environment.NewLine

    示例如下

    xaml

    <Window x:Class="TextblockNewlineWPF.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <ListBox x:Name="listbox" >
                <ListBox.ItemTemplate >
                    <DataTemplate >
                        <Border Margin="12">
                              <TextBlock Text="{Binding}"/>
                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate> 
            </ListBox>
        </Grid>
    </Window>

    C#

       public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<String> data = new List<string>();
                for (int i=0;i <10;i++)
                {
                    string str = string.Format("{0}{1}{2}", i.ToString(), Environment.NewLine, (i + 100).ToString());
                    data.Add(str);
                }
    
                listbox.ItemsSource = data; 
            }
        }


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    属性是上边传过来了

    不大方便format

    最后用了下附加属性,其实也是转成 Run 和 LineBreak

    http://www.cnblogs.com/sun8134/p/4191882.html


    My Blog:http://sun8134.cnblogs.com

    2014年12月29日 8:43

全部回复

  • 用 Environment.NewLine

    示例如下

    xaml

    <Window x:Class="TextblockNewlineWPF.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <ListBox x:Name="listbox" >
                <ListBox.ItemTemplate >
                    <DataTemplate >
                        <Border Margin="12">
                              <TextBlock Text="{Binding}"/>
                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate> 
            </ListBox>
        </Grid>
    </Window>

    C#

       public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<String> data = new List<string>();
                for (int i=0;i <10;i++)
                {
                    string str = string.Format("{0}{1}{2}", i.ToString(), Environment.NewLine, (i + 100).ToString());
                    data.Add(str);
                }
    
                listbox.ItemsSource = data; 
            }
        }


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2014年12月25日 6:22
  • 你好。

    数据绑定中的换行可以使用&#13;实现:

    “AAAAA&#13;BBBBB”

    这样就可以两行显示了。


    希望我的答案能帮助更多的人。


    2014年12月25日 6:46
  • 你好。

    数据绑定中的换行可以使用&#13;实现:

    “AAAAA&#13;BBBBB”

    这样就可以两行显示了。


    希望我的答案能帮助更多的人。


    貌似不行额

    直接在xaml里这么写是好用的,不过绑定貌似没效果...

    最后不行写了个附加属性

    http://www.cnblogs.com/sun8134/p/4191882.html



    My Blog:http://sun8134.cnblogs.com

    2014年12月29日 8:32
  • 用 Environment.NewLine

    示例如下

    xaml

    <Window x:Class="TextblockNewlineWPF.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <ListBox x:Name="listbox" >
                <ListBox.ItemTemplate >
                    <DataTemplate >
                        <Border Margin="12">
                              <TextBlock Text="{Binding}"/>
                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate> 
            </ListBox>
        </Grid>
    </Window>

    C#

       public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<String> data = new List<string>();
                for (int i=0;i <10;i++)
                {
                    string str = string.Format("{0}{1}{2}", i.ToString(), Environment.NewLine, (i + 100).ToString());
                    data.Add(str);
                }
    
                listbox.ItemsSource = data; 
            }
        }


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    属性是上边传过来了

    不大方便format

    最后用了下附加属性,其实也是转成 Run 和 LineBreak

    http://www.cnblogs.com/sun8134/p/4191882.html


    My Blog:http://sun8134.cnblogs.com

    2014年12月29日 8:43