text line alignments on different window sizes












2















I'm working on a login window that has to support multiple resolutions.
within that window there's a long line of text in different colors.



<TextBlock   
Style="{StaticResource TextStyle}"
TextWrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center"
TextAlignment="Center">
<Run
Text="{Binding MsgA}"
/>
<Run
Foreground="#FFFFFF"
FontFamily="{StaticResource CentralSansBook}"
Text="{Binding MsgB}"
/>
</TextBlock>


with this code I get this:
on Low resolutions, since I have almost half the width, I'll give up on pretty formatting and just want it to fit, so it will look like this



This is message A.This is
message B


on HIGH resolutions I want it to look like this



    This is message A.
This is message B


I cant figure out how to support both behaviors.










share|improve this question

























  • If i were you, i would write a trigger (inside the your textblock) for Window resolution (whick is static, so you can refer (with x:static) to it inside binding) which will change the TextWrapping value.

    – Péter Hidvégi
    Nov 26 '18 at 8:38













  • that sounds like it might work, any chance you got a reference link?

    – Danw25
    Nov 26 '18 at 10:38
















2















I'm working on a login window that has to support multiple resolutions.
within that window there's a long line of text in different colors.



<TextBlock   
Style="{StaticResource TextStyle}"
TextWrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center"
TextAlignment="Center">
<Run
Text="{Binding MsgA}"
/>
<Run
Foreground="#FFFFFF"
FontFamily="{StaticResource CentralSansBook}"
Text="{Binding MsgB}"
/>
</TextBlock>


with this code I get this:
on Low resolutions, since I have almost half the width, I'll give up on pretty formatting and just want it to fit, so it will look like this



This is message A.This is
message B


on HIGH resolutions I want it to look like this



    This is message A.
This is message B


I cant figure out how to support both behaviors.










share|improve this question

























  • If i were you, i would write a trigger (inside the your textblock) for Window resolution (whick is static, so you can refer (with x:static) to it inside binding) which will change the TextWrapping value.

    – Péter Hidvégi
    Nov 26 '18 at 8:38













  • that sounds like it might work, any chance you got a reference link?

    – Danw25
    Nov 26 '18 at 10:38














2












2








2








I'm working on a login window that has to support multiple resolutions.
within that window there's a long line of text in different colors.



<TextBlock   
Style="{StaticResource TextStyle}"
TextWrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center"
TextAlignment="Center">
<Run
Text="{Binding MsgA}"
/>
<Run
Foreground="#FFFFFF"
FontFamily="{StaticResource CentralSansBook}"
Text="{Binding MsgB}"
/>
</TextBlock>


with this code I get this:
on Low resolutions, since I have almost half the width, I'll give up on pretty formatting and just want it to fit, so it will look like this



This is message A.This is
message B


on HIGH resolutions I want it to look like this



    This is message A.
This is message B


I cant figure out how to support both behaviors.










share|improve this question
















I'm working on a login window that has to support multiple resolutions.
within that window there's a long line of text in different colors.



<TextBlock   
Style="{StaticResource TextStyle}"
TextWrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center"
TextAlignment="Center">
<Run
Text="{Binding MsgA}"
/>
<Run
Foreground="#FFFFFF"
FontFamily="{StaticResource CentralSansBook}"
Text="{Binding MsgB}"
/>
</TextBlock>


with this code I get this:
on Low resolutions, since I have almost half the width, I'll give up on pretty formatting and just want it to fit, so it will look like this



This is message A.This is
message B


on HIGH resolutions I want it to look like this



    This is message A.
This is message B


I cant figure out how to support both behaviors.







wpf xaml






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 26 '18 at 7:55









Micha Wiedenmann

10.5k1364106




10.5k1364106










asked Nov 26 '18 at 7:52









Danw25Danw25

808




808













  • If i were you, i would write a trigger (inside the your textblock) for Window resolution (whick is static, so you can refer (with x:static) to it inside binding) which will change the TextWrapping value.

    – Péter Hidvégi
    Nov 26 '18 at 8:38













  • that sounds like it might work, any chance you got a reference link?

    – Danw25
    Nov 26 '18 at 10:38



















  • If i were you, i would write a trigger (inside the your textblock) for Window resolution (whick is static, so you can refer (with x:static) to it inside binding) which will change the TextWrapping value.

    – Péter Hidvégi
    Nov 26 '18 at 8:38













  • that sounds like it might work, any chance you got a reference link?

    – Danw25
    Nov 26 '18 at 10:38

















If i were you, i would write a trigger (inside the your textblock) for Window resolution (whick is static, so you can refer (with x:static) to it inside binding) which will change the TextWrapping value.

– Péter Hidvégi
Nov 26 '18 at 8:38







If i were you, i would write a trigger (inside the your textblock) for Window resolution (whick is static, so you can refer (with x:static) to it inside binding) which will change the TextWrapping value.

– Péter Hidvégi
Nov 26 '18 at 8:38















that sounds like it might work, any chance you got a reference link?

– Danw25
Nov 26 '18 at 10:38





that sounds like it might work, any chance you got a reference link?

– Danw25
Nov 26 '18 at 10:38












1 Answer
1






active

oldest

votes


















0














As I can see all you need is just paste a line break before second message for high resolution. So I would do it in View layer with value converter:



public class NewLineInsCnv : IValueConverter
{
public bool InsertNewLine { get; set; } = IsHighResolution();

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (InsertNewLine && value is string st)
{
return Environment.NewLine + st;
}
return value;
}

public object ConvertBack(object value, Type targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException("One way only conversion");
}

private static bool IsHighResolution()
{
return true;//Check
}
}

<TextBlock
Style="{StaticResource TextStyle}"
TextWrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center"
TextAlignment="Center">
<TextBlock.Resources>
<local:NewLineInsCnv x:Key="insertNewLineCnv"/>
</TextBlock.Resources>
<Run
Text="{Binding MsgA}"
/>
<Run
Foreground="#FFFFFF"
FontFamily="{StaticResource CentralSansBook}"
Text="{Binding MsgB, Converter={StaticResource insertNewLineCnv}}"
/>
</TextBlock>


If necessary you could make InsertNewLine a dependency property.






share|improve this answer


























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53476742%2ftext-line-alignments-on-different-window-sizes%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    As I can see all you need is just paste a line break before second message for high resolution. So I would do it in View layer with value converter:



    public class NewLineInsCnv : IValueConverter
    {
    public bool InsertNewLine { get; set; } = IsHighResolution();

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
    if (InsertNewLine && value is string st)
    {
    return Environment.NewLine + st;
    }
    return value;
    }

    public object ConvertBack(object value, Type targetTypes, object parameter, CultureInfo culture)
    {
    throw new NotImplementedException("One way only conversion");
    }

    private static bool IsHighResolution()
    {
    return true;//Check
    }
    }

    <TextBlock
    Style="{StaticResource TextStyle}"
    TextWrapping="Wrap" HorizontalAlignment="Center"
    VerticalAlignment="Center"
    TextAlignment="Center">
    <TextBlock.Resources>
    <local:NewLineInsCnv x:Key="insertNewLineCnv"/>
    </TextBlock.Resources>
    <Run
    Text="{Binding MsgA}"
    />
    <Run
    Foreground="#FFFFFF"
    FontFamily="{StaticResource CentralSansBook}"
    Text="{Binding MsgB, Converter={StaticResource insertNewLineCnv}}"
    />
    </TextBlock>


    If necessary you could make InsertNewLine a dependency property.






    share|improve this answer






























      0














      As I can see all you need is just paste a line break before second message for high resolution. So I would do it in View layer with value converter:



      public class NewLineInsCnv : IValueConverter
      {
      public bool InsertNewLine { get; set; } = IsHighResolution();

      public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
      {
      if (InsertNewLine && value is string st)
      {
      return Environment.NewLine + st;
      }
      return value;
      }

      public object ConvertBack(object value, Type targetTypes, object parameter, CultureInfo culture)
      {
      throw new NotImplementedException("One way only conversion");
      }

      private static bool IsHighResolution()
      {
      return true;//Check
      }
      }

      <TextBlock
      Style="{StaticResource TextStyle}"
      TextWrapping="Wrap" HorizontalAlignment="Center"
      VerticalAlignment="Center"
      TextAlignment="Center">
      <TextBlock.Resources>
      <local:NewLineInsCnv x:Key="insertNewLineCnv"/>
      </TextBlock.Resources>
      <Run
      Text="{Binding MsgA}"
      />
      <Run
      Foreground="#FFFFFF"
      FontFamily="{StaticResource CentralSansBook}"
      Text="{Binding MsgB, Converter={StaticResource insertNewLineCnv}}"
      />
      </TextBlock>


      If necessary you could make InsertNewLine a dependency property.






      share|improve this answer




























        0












        0








        0







        As I can see all you need is just paste a line break before second message for high resolution. So I would do it in View layer with value converter:



        public class NewLineInsCnv : IValueConverter
        {
        public bool InsertNewLine { get; set; } = IsHighResolution();

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
        if (InsertNewLine && value is string st)
        {
        return Environment.NewLine + st;
        }
        return value;
        }

        public object ConvertBack(object value, Type targetTypes, object parameter, CultureInfo culture)
        {
        throw new NotImplementedException("One way only conversion");
        }

        private static bool IsHighResolution()
        {
        return true;//Check
        }
        }

        <TextBlock
        Style="{StaticResource TextStyle}"
        TextWrapping="Wrap" HorizontalAlignment="Center"
        VerticalAlignment="Center"
        TextAlignment="Center">
        <TextBlock.Resources>
        <local:NewLineInsCnv x:Key="insertNewLineCnv"/>
        </TextBlock.Resources>
        <Run
        Text="{Binding MsgA}"
        />
        <Run
        Foreground="#FFFFFF"
        FontFamily="{StaticResource CentralSansBook}"
        Text="{Binding MsgB, Converter={StaticResource insertNewLineCnv}}"
        />
        </TextBlock>


        If necessary you could make InsertNewLine a dependency property.






        share|improve this answer















        As I can see all you need is just paste a line break before second message for high resolution. So I would do it in View layer with value converter:



        public class NewLineInsCnv : IValueConverter
        {
        public bool InsertNewLine { get; set; } = IsHighResolution();

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
        if (InsertNewLine && value is string st)
        {
        return Environment.NewLine + st;
        }
        return value;
        }

        public object ConvertBack(object value, Type targetTypes, object parameter, CultureInfo culture)
        {
        throw new NotImplementedException("One way only conversion");
        }

        private static bool IsHighResolution()
        {
        return true;//Check
        }
        }

        <TextBlock
        Style="{StaticResource TextStyle}"
        TextWrapping="Wrap" HorizontalAlignment="Center"
        VerticalAlignment="Center"
        TextAlignment="Center">
        <TextBlock.Resources>
        <local:NewLineInsCnv x:Key="insertNewLineCnv"/>
        </TextBlock.Resources>
        <Run
        Text="{Binding MsgA}"
        />
        <Run
        Foreground="#FFFFFF"
        FontFamily="{StaticResource CentralSansBook}"
        Text="{Binding MsgB, Converter={StaticResource insertNewLineCnv}}"
        />
        </TextBlock>


        If necessary you could make InsertNewLine a dependency property.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 26 '18 at 11:28

























        answered Nov 26 '18 at 11:09









        RekshinoRekshino

        3,09021034




        3,09021034
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53476742%2ftext-line-alignments-on-different-window-sizes%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wiesbaden

            Marschland

            Dieringhausen