public static bool operator ==(TextSpan left, TextSpan right)
=> left.Equals (right);
public static bool operator !=(TextSpan left, TextSpan right)
- => !left.Equals (right);
+ => !left.Equals (right);
+ public override string ToString() => $"{Start},{End}";
}
}
/// Current Selected text span.
/// </summary>
public TextSpan Selection {
- get {
+ get {
+ if (CurrentLoc == null)
+ return default;
CharLocation selStart = CurrentLoc.Value, selEnd = CurrentLoc.Value;
if (selectionStart.HasValue) {
if (CurrentLoc.Value.Line < selectionStart.Value.Line) {
<?xml version="1.0"?>
<VerticalStack Background="SteelBlue" Fit="true">
<HorizontalStack Fit="true">
- <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Left"/>
- <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Center"/>
- <TextBox Background="DarkGrey" Height="30" Width="50" TextAlignment="Right"/>
+ <TextBox Background="DarkGrey" Width="50" TextAlignment="Left" Foreground="White"/>
+ <TextBox Background="DarkGrey" Width="50" TextAlignment="Center" Foreground="White"/>
+ <TextBox Background="DarkGrey" Width="50" TextAlignment="Right" Foreground="White"/>
</HorizontalStack>
- <TextBox Name="tb" Multiline="true" Font="droid,16" Margin="5" Text="A\nBB\nCCC\nDDDD"/>
- <TextBox Multiline="true" Font="droid,16" Name="tb5" Margin="5" Text="{../tb.SelectedText}"/>
-<!-- <TextBox Font="droid,10" Name="tb1" Margin="5" Text="this is a test of a text box"/>
- <TextBox Width="300" Height="35" Text="this is a test of a text box"/>-->
+ <TextBox Text="A\nBB\nCCC\nDDDD" Focused="true" Name="tb" Multiline="true" Font="droid,16" Margin="5" />
+ <TextBox Multiline="true" Font="droid,16" Name="tb5" Margin="5" Text="{../tb.Selection}"/>
<TextBox Font="droid,10" Name="tb2" Margin="0" Text="this is a test of a text box"/>
<TextBox Font="droid,10" Name="tb3" Margin="5" Text="this is a test of a text box"/>
<TextBox Font="droid,10" Name="tb4" Margin="5" Text="this is a test of a text box"/>
<TextBox Font="droid,10" Name="tb5" Margin="20" Text="this is a test of a text box"/>
<TextBox Multiline="true" Font="droid,10" Name="tb6" Margin="5" Text="this is a test of a text box\nthis is a test of a text box"/>
<TextBox Multiline="true" Font="droid,10" Name="tb7" Margin="1" TextAlignment="Center"
- Text="this is a test of a text box\nthis is a test\nthis is a test when line are centered"/>
+ Text="this is a test of a text boxthis is a test\nthis is a test when line are centered"/>
<TextBox Multiline="true" Font="droid,10" Name="tb8" Margin="1" TextAlignment="Center"
Text="this is a test of a text box\n\n\nthis is a test\nthis is a test when line are centered"/>
</VerticalStack>
\ No newline at end of file
<?xml version="1.0"?>
-<VerticalStack>
- <Border Fit="true" Margin="10">
- <VerticalStack Width="150" Height="Fit">
- <RadioButton Caption="Left" IsChecked="true" Checked="change_alignment"/>
- <RadioButton Caption="Right" Checked="change_alignment"/>
- <RadioButton Caption="Top" Checked="change_alignment"/>
- <RadioButton Caption="Bottom" Checked="change_alignment"/>
- </VerticalStack>
- </Border>
- <Widget Height="200"/>
- <Popper Caption="TestPopper" Width="100" Background="DimGrey" PopDirection="{alignment}">
+<Group Margin="10">
+ <EnumSelector Caption="Pop Direction" RadioButtonStyle="CheckBox2" HorizontalAlignment="Left" VerticalAlignment="Top" EnumValue="{²../popper.PopDirection}"/>
+ <Popper Name="popper" Caption="Popping Widget" Width="Fit" Background="DimGrey" PopDirection="Right"
+ MouseEnter="{IsPopped='true'}">
<Border Fit="True" Background="SteelBlue">
- <Image Fit="true" Path="#Crow.Icons.crow.svg" Margin="10"/>
<VerticalStack Fit="true" Margin="10" Background="CornflowerBlue">
+ <Image Width="64" Height="64" Path="#Crow.Icons.crow.svg" Margin="1" />
<CheckBox Name="chk1" Background="Red"/>
<CheckBox Name="chk2" IsChecked="true"/>
<CheckBox Name="chk3"/>
</VerticalStack>
</Border>
</Popper>
-</VerticalStack>
+ <Label Multiline="true" VerticalAlignment="Bottom" Text="Popping Direction is overriden if space not sufficient."/>
+</Group>