| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Avalonia UI Controls Definition for UI Layout Definition Format -->
- <patterns xmlns="ui-layout-patterns">
-
- <!-- Base Avalonia Controls -->
-
- <!-- Content Controls -->
- <control name="AvaloniaButton" type="action" category="avalonia-specific" inherits="Button">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas,WrapPanel,UniformGrid</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="click-mode" type="enum" values="Release,Press,Hover" default="Release" />
- <attribute name="is-default" type="bool" default="false" />
- <attribute name="is-cancel" type="bool" default="false" />
- <attribute name="hotkey" type="string" default="" />
- <attribute name="command" type="string" default="" />
- <attribute name="command-parameter" type="object" default="null" />
- </attributes>
- <behavior>
- <event name="click" required="true" />
- <event name="command-changed" />
- </behavior>
- </control>
-
- <control name="RepeatButton" type="action" category="avalonia-specific">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="delay" type="int" default="500" min="0" max="5000" />
- <attribute name="interval" type="int" default="33" min="1" max="1000" />
- </attributes>
- <behavior>
- <event name="click" required="true" />
- </behavior>
- </control>
-
- <!-- Layout Panels -->
- <control name="StackPanel" type="container" category="avalonia-layout">
- <constraints>
- <allowed-parents>Panel,Grid,DockPanel,Canvas,ScrollViewer,Border</allowed-parents>
- <allowed-children>any-control</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="orientation" type="enum" values="Horizontal,Vertical" default="Vertical" />
- <attribute name="spacing" type="double" default="0" min="0" max="100" />
- </attributes>
- </control>
-
- <control name="Grid" type="container" category="avalonia-layout">
- <constraints>
- <allowed-parents>Panel,StackPanel,DockPanel,Canvas,ScrollViewer,Border</allowed-parents>
- <allowed-children>any-control</allowed-children>
- <container>true</container>
- <requires-structure>grid-definitions</requires-structure>
- </constraints>
- <attributes>
- <attribute name="show-grid-lines" type="bool" default="false" />
- </attributes>
- <structure>
- <grid-definitions>
- <row-definitions>
- <row-definition height="*" min-height="0" max-height="Infinity" />
- </row-definitions>
- <column-definitions>
- <column-definition width="*" min-width="0" max-width="Infinity" />
- </column-definitions>
- </grid-definitions>
- <children>
- <child grid-row="0" grid-column="0" grid-row-span="1" grid-column-span="1" />
- </children>
- </structure>
- </control>
-
- <control name="DockPanel" type="container" category="avalonia-layout">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,Canvas,ScrollViewer,Border</allowed-parents>
- <allowed-children>any-control</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="last-child-fill" type="bool" default="true" />
- </attributes>
- <structure>
- <children>
- <child dock="Left,Top,Right,Bottom,None" />
- </children>
- </structure>
- </control>
-
- <control name="WrapPanel" type="container" category="avalonia-layout">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>any-control</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="orientation" type="enum" values="Horizontal,Vertical" default="Horizontal" />
- <attribute name="item-width" type="double" default="NaN" min="0" />
- <attribute name="item-height" type="double" default="NaN" min="0" />
- </attributes>
- </control>
-
- <control name="Canvas" type="container" category="avalonia-layout">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,ScrollViewer</allowed-parents>
- <allowed-children>any-control</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="background" type="brush" default="Transparent" />
- </attributes>
- <structure>
- <children>
- <child canvas-left="0" canvas-top="0" canvas-right="NaN" canvas-bottom="NaN" />
- </children>
- </structure>
- </control>
-
- <control name="UniformGrid" type="container" category="avalonia-layout">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>any-control</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="rows" type="int" default="0" min="0" max="100" />
- <attribute name="columns" type="int" default="0" min="0" max="100" />
- <attribute name="first-column" type="int" default="0" min="0" />
- </attributes>
- </control>
-
- <!-- Input Controls -->
- <control name="AvaloniaTextBox" type="input" category="avalonia-input" inherits="TextBox">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="accepts-return" type="bool" default="false" />
- <attribute name="accepts-tab" type="bool" default="false" />
- <attribute name="caret-index" type="int" default="0" min="0" />
- <attribute name="selection-start" type="int" default="0" min="0" />
- <attribute name="selection-end" type="int" default="0" min="0" />
- <attribute name="text-wrapping" type="enum" values="NoWrap,Wrap" default="NoWrap" />
- <attribute name="watermark" type="string" default="" />
- <attribute name="password-char" type="char" default="" />
- <attribute name="reveal-password" type="bool" default="false" />
- <attribute name="use-floating-watermark" type="bool" default="false" />
- </attributes>
- <behavior>
- <event name="text-changed" />
- <event name="text-changing" />
- <event name="selection-changed" />
- <event name="copy" />
- <event name="cut" />
- <event name="paste" />
- </behavior>
- </control>
-
- <control name="NumericUpDown" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="value" type="double" default="0" />
- <attribute name="minimum" type="double" default="0" />
- <attribute name="maximum" type="double" default="100" />
- <attribute name="increment" type="double" default="1" />
- <attribute name="format-string" type="string" default="F0" />
- <attribute name="text" type="string" default="" />
- <attribute name="watermark" type="string" default="" />
- <attribute name="show-button-spinner" type="bool" default="true" />
- <attribute name="allow-spin" type="bool" default="true" />
- <attribute name="button-spinner-location" type="enum" values="Right,Left" default="Right" />
- </attributes>
- <behavior>
- <event name="value-changed" />
- <event name="spin" />
- </behavior>
- </control>
-
- <control name="AvaloniaComboBox" type="input" category="avalonia-input" inherits="ComboBox">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>ComboBoxItem</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="is-dropdown-open" type="bool" default="false" />
- <attribute name="max-drop-down-height" type="double" default="200" min="0" />
- <attribute name="placeholder-text" type="string" default="" />
- <attribute name="placeholder-foreground" type="brush" default="Gray" />
- </attributes>
- <behavior>
- <event name="dropdown-opened" />
- <event name="dropdown-closed" />
- </behavior>
- <structure>
- <items>
- <ComboBoxItem content="" is-selected="false" />
- </items>
- </structure>
- </control>
-
- <control name="AutoCompleteBox" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="text" type="string" default="" />
- <attribute name="search-text" type="string" default="" />
- <attribute name="watermark" type="string" default="" />
- <attribute name="minimum-prefix-length" type="int" default="1" min="0" max="10" />
- <attribute name="minimum-populate-delay" type="int" default="0" min="0" max="5000" />
- <attribute name="maximum-drop-down-height" type="double" default="600" min="0" />
- <attribute name="is-drop-down-open" type="bool" default="false" />
- <attribute name="filter-mode" type="enum" values="None,StartsWith,StartsWithCaseSensitive,StartsWithOrdinal,StartsWithOrdinalCaseSensitive,Contains,ContainsCaseSensitive,ContainsOrdinal,ContainsOrdinalCaseSensitive,Equals,EqualsCaseSensitive,EqualsOrdinal,EqualsOrdinalCaseSensitive,Custom" default="StartsWith" />
- </attributes>
- <behavior>
- <event name="text-changed" />
- <event name="populating" />
- <event name="populated" />
- <event name="dropdown-opening" />
- <event name="dropdown-opened" />
- <event name="dropdown-closing" />
- <event name="dropdown-closed" />
- <event name="selection-changed" />
- </behavior>
- </control>
-
- <control name="CheckBox" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="is-checked" type="bool" default="false" />
- <attribute name="is-three-state" type="bool" default="false" />
- </attributes>
- <behavior>
- <event name="checked" />
- <event name="unchecked" />
- <event name="indeterminate" />
- </behavior>
- </control>
-
- <control name="RadioButton" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="is-checked" type="bool" default="false" />
- <attribute name="group-name" type="string" default="" />
- </attributes>
- <behavior>
- <event name="checked" />
- <event name="unchecked" />
- </behavior>
- </control>
-
- <control name="Slider" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="value" type="double" default="0" />
- <attribute name="minimum" type="double" default="0" />
- <attribute name="maximum" type="double" default="10" />
- <attribute name="small-change" type="double" default="0.1" />
- <attribute name="large-change" type="double" default="1" />
- <attribute name="tick-frequency" type="double" default="0" />
- <attribute name="tick-placement" type="enum" values="None,TopLeft,BottomRight,Both" default="None" />
- <attribute name="is-snap-to-tick-enabled" type="bool" default="false" />
- <attribute name="orientation" type="enum" values="Horizontal,Vertical" default="Horizontal" />
- </attributes>
- <behavior>
- <event name="value-changed" />
- </behavior>
- </control>
-
- <control name="CalendarDatePicker" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="selected-date" type="date" default="null" />
- <attribute name="display-date" type="date" default="today" />
- <attribute name="first-day-of-week" type="enum" values="Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday" default="Sunday" />
- <attribute name="is-drop-down-open" type="bool" default="false" />
- <attribute name="placeholder-text" type="string" default="" />
- <attribute name="watermark" type="string" default="" />
- </attributes>
- <behavior>
- <event name="selected-date-changed" />
- <event name="calendar-opened" />
- <event name="calendar-closed" />
- <event name="date-validation-error" />
- </behavior>
- </control>
-
- <control name="TimePicker" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="selected-time" type="timespan" default="null" />
- <attribute name="minute-increment" type="int" default="1" min="1" max="30" />
- <attribute name="clock-identifier" type="string" default="12HourClock" />
- </attributes>
- <behavior>
- <event name="selected-time-changed" />
- </behavior>
- </control>
-
- <!-- Display Controls -->
- <control name="AvaloniaLabel" type="display" category="avalonia-display" inherits="Label">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="target" type="string" default="" />
- </attributes>
- </control>
-
- <control name="TextBlock" type="display" category="avalonia-display">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas,ScrollViewer</allowed-parents>
- <allowed-children>Inline</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="text" type="string" default="" />
- <attribute name="font-family" type="string" default="Default" />
- <attribute name="font-size" type="double" default="12" min="1" max="100" />
- <attribute name="font-weight" type="enum" values="Thin,ExtraLight,Light,Normal,Medium,SemiBold,Bold,ExtraBold,Black,ExtraBlack" default="Normal" />
- <attribute name="font-style" type="enum" values="Normal,Italic,Oblique" default="Normal" />
- <attribute name="text-alignment" type="enum" values="Left,Center,Right,Justify" default="Left" />
- <attribute name="text-wrapping" type="enum" values="NoWrap,Wrap" default="NoWrap" />
- <attribute name="text-trimming" type="enum" values="None,CharacterEllipsis,WordEllipsis" default="None" />
- <attribute name="text-decoration" type="enum" values="None,Underline,Strikethrough,Baseline,OverLine" default="None" />
- <attribute name="line-height" type="double" default="NaN" min="0" />
- <attribute name="max-lines" type="int" default="0" min="0" />
- </attributes>
- </control>
-
- <control name="Image" type="display" category="avalonia-display">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="source" type="string" default="" />
- <attribute name="stretch" type="enum" values="None,Fill,Uniform,UniformToFill" default="Uniform" />
- <attribute name="stretch-direction" type="enum" values="UpOnly,DownOnly,Both" default="Both" />
- </attributes>
- </control>
-
- <control name="ProgressBar" type="display" category="avalonia-display">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="value" type="double" default="0" />
- <attribute name="minimum" type="double" default="0" />
- <attribute name="maximum" type="double" default="100" />
- <attribute name="is-indeterminate" type="bool" default="false" />
- <attribute name="orientation" type="enum" values="Horizontal,Vertical" default="Horizontal" />
- <attribute name="show-progress-text" type="bool" default="false" />
- </attributes>
- </control>
-
- <!-- Data Controls -->
- <control name="AvaloniaListView" type="data" category="avalonia-data" inherits="ListView">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas,ScrollViewer</allowed-parents>
- <allowed-children>ListViewItem</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="selection-mode" type="enum" values="Single,Multiple,Extended,Toggle" default="Single" />
- </attributes>
- <structure>
- <view>
- <grid-view>
- <columns>
- <grid-view-column header="" display-member-binding="" width="auto" />
- </columns>
- </grid-view>
- </view>
- </structure>
- </control>
-
- <control name="DataGrid" type="data" category="avalonia-data">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>DataGridColumn</allowed-children>
- <container>true</container>
- <requires-structure>columns</requires-structure>
- </constraints>
- <attributes>
- <attribute name="items-source" type="object" default="null" />
- <attribute name="selected-item" type="object" default="null" />
- <attribute name="selected-index" type="int" default="-1" />
- <attribute name="can-user-resize-columns" type="bool" default="true" />
- <attribute name="can-user-sort-columns" type="bool" default="true" />
- <attribute name="can-user-reorder-columns" type="bool" default="true" />
- <attribute name="row-background" type="brush" default="Transparent" />
- <attribute name="alternating-row-background" type="brush" default="Transparent" />
- <attribute name="selection-mode" type="enum" values="Single,Extended" default="Extended" />
- <attribute name="grid-lines-visibility" type="enum" values="None,Horizontal,Vertical,All" default="All" />
- <attribute name="headers-visibility" type="enum" values="None,Column,Row,All" default="Column" />
- <attribute name="auto-generate-columns" type="bool" default="true" />
- <attribute name="is-read-only" type="bool" default="false" />
- </attributes>
- <behavior>
- <event name="selection-changed" />
- <event name="current-cell-changed" />
- <event name="row-edit-ending" />
- <event name="row-edit-ended" />
- <event name="cell-edit-ending" />
- <event name="cell-edit-ended" />
- <event name="begin-edit" />
- <event name="prepare-cell-for-edit" />
- <event name="column-reordering" />
- <event name="column-reordered" />
- <event name="sorting" />
- </behavior>
- <structure>
- <columns min-count="0" max-count="50">
- <DataGridTextColumn header="" binding="" width="*" is-read-only="false" />
- <DataGridCheckBoxColumn header="" binding="" width="auto" is-read-only="false" />
- <DataGridComboBoxColumn header="" binding="" width="*" is-read-only="false" />
- <DataGridTemplateColumn header="" width="*" is-read-only="false" />
- </columns>
- </structure>
- </control>
-
- <control name="AvaloniaTreeView" type="data" category="avalonia-data" inherits="TreeView">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>TreeViewItem</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="selected-item" type="object" default="null" />
- <attribute name="auto-scroll-to-selected-item" type="bool" default="true" />
- </attributes>
- <behavior>
- <event name="selection-changed" />
- </behavior>
- <structure>
- <items>
- <TreeViewItem header="" is-expanded="false" is-selected="false">
- <items>
- <!-- Recursive TreeViewItem structure -->
- </items>
- </TreeViewItem>
- </items>
- </structure>
- </control>
-
- <control name="ListBox" type="data" category="avalonia-data">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>ListBoxItem</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="selected-item" type="object" default="null" />
- <attribute name="selected-index" type="int" default="-1" />
- <attribute name="selection-mode" type="enum" values="Single,Multiple,Extended,Toggle" default="Single" />
- </attributes>
- <behavior>
- <event name="selection-changed" />
- </behavior>
- <structure>
- <items>
- <ListBoxItem content="" is-selected="false" />
- </items>
- </structure>
- </control>
-
- <!-- Container and Decoration Controls -->
- <control name="Border" type="container" category="avalonia-decoration">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>single-child</allowed-children>
- <container>true</container>
- <max-children>1</max-children>
- </constraints>
- <attributes>
- <attribute name="border-brush" type="brush" default="Black" />
- <attribute name="border-thickness" type="thickness" default="0" />
- <attribute name="corner-radius" type="corner-radius" default="0" />
- <attribute name="background" type="brush" default="Transparent" />
- <attribute name="padding" type="thickness" default="0" />
- </attributes>
- </control>
-
- <control name="ScrollViewer" type="container" category="avalonia-container">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas,Border</allowed-parents>
- <allowed-children>single-child</allowed-children>
- <container>true</container>
- <max-children>1</max-children>
- </constraints>
- <attributes>
- <attribute name="horizontal-scroll-bar-visibility" type="enum" values="Disabled,Auto,Hidden,Visible" default="Disabled" />
- <attribute name="vertical-scroll-bar-visibility" type="enum" values="Disabled,Auto,Hidden,Visible" default="Auto" />
- <attribute name="zoom-mode" type="enum" values="Disabled,Enabled" default="Disabled" />
- <attribute name="horizontal-snap-points-type" type="enum" values="None,Optional,Mandatory,OptionalSingle,MandatorySingle" default="None" />
- <attribute name="vertical-snap-points-type" type="enum" values="None,Optional,Mandatory,OptionalSingle,MandatorySingle" default="None" />
- <attribute name="is-scroll-chaining-enabled" type="bool" default="true" />
- </attributes>
- <behavior>
- <event name="scroll-changed" />
- </behavior>
- </control>
-
- <control name="Expander" type="container" category="avalonia-container">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>single-child</allowed-children>
- <container>true</container>
- <max-children>1</max-children>
- </constraints>
- <attributes>
- <attribute name="is-expanded" type="bool" default="false" />
- <attribute name="expand-direction" type="enum" values="Down,Up,Left,Right" default="Down" />
- <attribute name="header" type="object" default="null" />
- </attributes>
- <behavior>
- <event name="expanded" />
- <event name="collapsed" />
- </behavior>
- </control>
-
- <control name="TabControl" type="container" category="avalonia-container">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>TabItem</allowed-children>
- <container>true</container>
- <requires-structure>tabs</requires-structure>
- </constraints>
- <attributes>
- <attribute name="selected-index" type="int" default="0" min="0" />
- <attribute name="selected-item" type="object" default="null" />
- <attribute name="tab-strip-placement" type="enum" values="Top,Bottom,Left,Right" default="Top" />
- </attributes>
- <behavior>
- <event name="selection-changed" />
- </behavior>
- <structure>
- <tabs min-count="1" max-count="20">
- <TabItem header="" is-selected="false">
- <!-- Tab content -->
- </TabItem>
- </tabs>
- </structure>
- </control>
-
- <control name="SplitView" type="container" category="avalonia-container">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>pane-content</allowed-children>
- <container>true</container>
- <max-children>2</max-children>
- </constraints>
- <attributes>
- <attribute name="is-pane-open" type="bool" default="false" />
- <attribute name="display-mode" type="enum" values="Overlay,Inline,CompactOverlay,CompactInline" default="Overlay" />
- <attribute name="open-pane-length" type="double" default="320" min="0" />
- <attribute name="compact-pane-length" type="double" default="48" min="0" />
- <attribute name="pane-placement" type="enum" values="Left,Right" default="Left" />
- </attributes>
- <behavior>
- <event name="pane-opened" />
- <event name="pane-closed" />
- </behavior>
- <structure>
- <pane>
- <!-- Pane content -->
- </pane>
- <content>
- <!-- Main content -->
- </content>
- </structure>
- </control>
-
- <!-- Specialized Controls -->
- <control name="MenuBar" type="navigation" category="avalonia-navigation">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel</allowed-parents>
- <allowed-children>NativeMenuItem</allowed-children>
- <container>true</container>
- <requires-structure>menu-items</requires-structure>
- </constraints>
- <structure>
- <menu-items min-count="1" max-count="20">
- <NativeMenuItem header="" command="" input-gesture="">
- <menu-items>
- <!-- Nested menu items -->
- </menu-items>
- </NativeMenuItem>
- </menu-items>
- </structure>
- </control>
-
- <control name="ContextMenu" type="navigation" category="avalonia-navigation">
- <constraints>
- <allowed-parents>any-control</allowed-parents>
- <allowed-children>MenuItem</allowed-children>
- <container>true</container>
- <requires-structure>menu-items</requires-structure>
- </constraints>
- <attributes>
- <attribute name="placement-mode" type="enum" values="Bottom,Right,Mouse,Relative,BottomEdgeAlignedLeft,BottomEdgeAlignedRight,TopEdgeAlignedLeft,TopEdgeAlignedRight,LeftEdgeAlignedTop,LeftEdgeAlignedBottom,RightEdgeAlignedTop,RightEdgeAlignedBottom" default="Mouse" />
- <attribute name="placement-target" type="object" default="null" />
- </attributes>
- <behavior>
- <event name="opened" />
- <event name="closed" />
- </behavior>
- <structure>
- <menu-items min-count="1" max-count="50">
- <MenuItem header="" command="" input-gesture="" is-checkable="false" is-checked="false">
- <menu-items>
- <!-- Nested menu items -->
- </menu-items>
- </MenuItem>
- </menu-items>
- </structure>
- </control>
-
- <control name="ToolTip" type="display" category="avalonia-decoration">
- <constraints>
- <allowed-parents>any-control</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- <max-children>1</max-children>
- </constraints>
- <attributes>
- <attribute name="tip" type="object" default="null" />
- <attribute name="placement" type="enum" values="Top,Bottom,Left,Right,Pointer,TopEdgeAlignedLeft,TopEdgeAlignedRight,BottomEdgeAlignedLeft,BottomEdgeAlignedRight,LeftEdgeAlignedTop,LeftEdgeAlignedBottom,RightEdgeAlignedTop,RightEdgeAlignedBottom" default="Top" />
- <attribute name="horizontal-offset" type="double" default="0" />
- <attribute name="vertical-offset" type="double" default="0" />
- <attribute name="show-delay" type="int" default="400" min="0" max="5000" />
- <attribute name="show-on-disabled" type="bool" default="true" />
- </attributes>
- <behavior>
- <event name="tip-opened" />
- <event name="tip-closed" />
- </behavior>
- </control>
-
- <control name="FlyoutBase" type="container" category="avalonia-popup">
- <constraints>
- <allowed-parents>any-control</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="placement" type="enum" values="Top,Bottom,Left,Right,TopEdgeAlignedLeft,TopEdgeAlignedRight,BottomEdgeAlignedLeft,BottomEdgeAlignedRight,LeftEdgeAlignedTop,LeftEdgeAlignedBottom,RightEdgeAlignedTop,RightEdgeAlignedBottom" default="Bottom" />
- <attribute name="show-mode" type="enum" values="Standard,Transient,TransientWithDismissOnPointerMoveAway" default="Standard" />
- </attributes>
- <behavior>
- <event name="opened" />
- <event name="closed" />
- </behavior>
- </control>
-
- <control name="Window" type="container" category="avalonia-window">
- <constraints>
- <allowed-parents>none</allowed-parents>
- <allowed-children>single-child</allowed-children>
- <container>true</container>
- <max-children>1</max-children>
- </constraints>
- <attributes>
- <attribute name="title" type="string" default="" />
- <attribute name="width" type="double" default="800" min="200" max="4000" />
- <attribute name="height" type="double" default="600" min="150" max="3000" />
- <attribute name="min-width" type="double" default="0" min="0" />
- <attribute name="min-height" type="double" default="0" min="0" />
- <attribute name="max-width" type="double" default="Infinity" />
- <attribute name="max-height" type="double" default="Infinity" />
- <attribute name="can-resize" type="bool" default="true" />
- <attribute name="show-in-taskbar" type="bool" default="true" />
- <attribute name="topmost" type="bool" default="false" />
- <attribute name="window-state" type="enum" values="Normal,Minimized,Maximized,FullScreen" default="Normal" />
- <attribute name="window-startup-location" type="enum" values="Manual,CenterScreen,CenterOwner" default="Manual" />
- <attribute name="system-decorations" type="enum" values="Full,BorderOnly,None" default="Full" />
- <attribute name="extend-client-area-to-decorations-hint" type="bool" default="false" />
- <attribute name="extend-client-area-chrome-hints" type="enum" values="Default,PreferSystemChrome,PreferClientChrome,NoChrome" default="Default" />
- <attribute name="extend-client-area-title-bar-height-hint" type="double" default="-1" />
- </attributes>
- <behavior>
- <event name="activated" />
- <event name="deactivated" />
- <event name="closing" />
- <event name="closed" />
- <event name="opened" />
- <event name="position-changed" />
- <event name="resize-started" />
- <event name="resize-ended" />
- <event name="window-state-changed" />
- </behavior>
- </control>
-
- <control name="UserControl" type="container" category="avalonia-container">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas,Border,ScrollViewer</allowed-parents>
- <allowed-children>single-child</allowed-children>
- <container>true</container>
- <max-children>1</max-children>
- </constraints>
- <attributes>
- <attribute name="content" type="object" default="null" />
- </attributes>
- </control>
-
- <!-- Media Controls -->
- <control name="MediaElement" type="media" category="avalonia-media">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="source" type="string" default="" />
- <attribute name="volume" type="double" default="0.5" min="0" max="1" />
- <attribute name="is-muted" type="bool" default="false" />
- <attribute name="auto-play" type="bool" default="false" />
- <attribute name="stretch" type="enum" values="None,Fill,Uniform,UniformToFill" default="Uniform" />
- <attribute name="position" type="timespan" default="00:00:00" />
- </attributes>
- <behavior>
- <event name="media-opened" />
- <event name="media-ended" />
- <event name="media-failed" />
- <event name="position-changed" />
- <event name="buffering-started" />
- <event name="buffering-ended" />
- </behavior>
- </control>
-
- <!-- Advanced Input Controls -->
- <control name="MaskedTextBox" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="mask" type="string" default="" />
- <attribute name="prompt-char" type="char" default="_" />
- <attribute name="culture" type="string" default="en-US" />
- <attribute name="ascii-only" type="bool" default="false" />
- <attribute name="reset-on-prompt" type="bool" default="true" />
- <attribute name="reset-on-space" type="bool" default="true" />
- <attribute name="skip-literals" type="bool" default="true" />
- </attributes>
- <behavior>
- <event name="mask-input-rejected" />
- <event name="text-mask-format-changed" />
- </behavior>
- </control>
-
- <control name="ColorPicker" type="input" category="avalonia-input">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="color" type="color" default="#FFFFFF" />
- <attribute name="is-alpha-enabled" type="bool" default="true" />
- <attribute name="is-color-slider-visible" type="bool" default="true" />
- <attribute name="is-color-palette-visible" type="bool" default="true" />
- <attribute name="is-hex-input-visible" type="bool" default="true" />
- <attribute name="palette-column-count" type="int" default="10" min="1" max="20" />
- </attributes>
- <behavior>
- <event name="color-changed" />
- </behavior>
- </control>
-
- <!-- Drawing and Canvas Controls -->
- <control name="PathIcon" type="display" category="avalonia-graphics">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas,Button</allowed-parents>
- <allowed-children>none</allowed-children>
- <container>false</container>
- </constraints>
- <attributes>
- <attribute name="data" type="geometry" default="" />
- <attribute name="foreground" type="brush" default="Black" />
- </attributes>
- </control>
-
- <control name="Viewbox" type="container" category="avalonia-layout">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel,Canvas</allowed-parents>
- <allowed-children>single-child</allowed-children>
- <container>true</container>
- <max-children>1</max-children>
- </constraints>
- <attributes>
- <attribute name="stretch" type="enum" values="None,Fill,Uniform,UniformToFill" default="Uniform" />
- <attribute name="stretch-direction" type="enum" values="UpOnly,DownOnly,Both" default="Both" />
- </attributes>
- </control>
-
- <!-- Notification Controls -->
- <control name="NotificationCard" type="display" category="avalonia-notification">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid</allowed-parents>
- <allowed-children>any-content</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="notification-type" type="enum" values="Information,Success,Warning,Error" default="Information" />
- <attribute name="is-closable" type="bool" default="true" />
- <attribute name="close-on-click" type="bool" default="false" />
- </attributes>
- <behavior>
- <event name="closed" />
- <event name="closing" />
- </behavior>
- </control>
-
- <!-- Custom Structures and Patterns -->
- <structure name="AvaloniaFormField" type="pattern" category="avalonia-composite" inherits="FormField">
- <constraints>
- <allowed-parents>StackPanel,Grid,UniformGrid</allowed-parents>
- <allowed-children>Label,AvaloniaTextBox,AvaloniaComboBox,CheckBox,NumericUpDown</allowed-children>
- <container>true</container>
- <required-slots>input</required-slots>
- </constraints>
- <attributes>
- <attribute name="label-text" type="string" required="true" />
- <attribute name="required" type="bool" default="false" />
- <attribute name="validation-message" type="string" default="" />
- <attribute name="help-text" type="string" default="" />
- <attribute name="label-width" type="double" default="120" min="50" max="300" />
- </attributes>
- <template>
- <Grid name="fieldContainer">
- <grid-definitions>
- <column-definitions>
- <column-definition width="{label-width}" />
- <column-definition width="*" />
- </column-definitions>
- <row-definitions>
- <row-definition height="Auto" />
- <row-definition height="Auto" />
- </row-definitions>
- </grid-definitions>
-
- <AvaloniaLabel name="fieldLabel" text="{label-text}" grid-column="0" grid-row="0" />
- <slot name="input" allowed-controls="AvaloniaTextBox,AvaloniaComboBox,CheckBox,NumericUpDown" required="true" grid-column="1" grid-row="0" />
-
- <TextBlock name="helpText" text="{help-text}" grid-column="1" grid-row="1"
- font-size="11" foreground="Gray" visible="{help-text != ''}" />
- <TextBlock name="validationLabel" text="{validation-message}" grid-column="1" grid-row="1"
- visible="false" foreground="Red" font-size="11" />
- </Grid>
- </template>
- </structure>
-
- <structure name="AvaloniaButtonBar" type="pattern" category="avalonia-composite">
- <constraints>
- <allowed-parents>Panel,StackPanel,Grid,DockPanel</allowed-parents>
- <allowed-children>AvaloniaButton</allowed-children>
- <container>true</container>
- <max-children>10</max-children>
- </constraints>
- <attributes>
- <attribute name="alignment" type="enum" values="Left,Center,Right,Stretch" default="Right" />
- <attribute name="spacing" type="double" default="5" min="0" max="20" />
- <attribute name="orientation" type="enum" values="Horizontal,Vertical" default="Horizontal" />
- </attributes>
- <template>
- <StackPanel name="buttonContainer" orientation="{orientation}" spacing="{spacing}">
- <slot name="buttons" allowed-controls="AvaloniaButton" />
- </StackPanel>
- </template>
- </structure>
-
- <structure name="AvaloniaToolbar" type="pattern" category="avalonia-composite">
- <constraints>
- <allowed-parents>DockPanel,Grid,StackPanel</allowed-parents>
- <allowed-children>AvaloniaButton,Separator</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="orientation" type="enum" values="Horizontal,Vertical" default="Horizontal" />
- <attribute name="band" type="int" default="0" min="0" max="10" />
- <attribute name="band-index" type="int" default="0" min="0" max="100" />
- </attributes>
- <template>
- <Border name="toolbarBorder" background="LightGray" border-thickness="0,0,0,1" border-brush="Gray">
- <StackPanel name="toolbarPanel" orientation="{orientation}" margin="2">
- <slot name="toolbar-items" allowed-controls="AvaloniaButton,Separator" />
- </StackPanel>
- </Border>
- </template>
- </structure>
-
- <structure name="AvaloniaStatusBar" type="pattern" category="avalonia-composite">
- <constraints>
- <allowed-parents>DockPanel,Grid</allowed-parents>
- <allowed-children>TextBlock,ProgressBar,Separator</allowed-children>
- <container>true</container>
- </constraints>
- <attributes>
- <attribute name="height" type="double" default="23" min="20" max="50" />
- </attributes>
- <template>
- <Border name="statusBorder" background="LightGray" border-thickness="0,1,0,0" border-brush="Gray" height="{height}">
- <DockPanel name="statusPanel" last-child-fill="true">
- <slot name="status-items" allowed-controls="TextBlock,ProgressBar,Separator" />
- </DockPanel>
- </Border>
- </template>
- </structure>
-
- <wireframe name="AvaloniaMainWindow" type="base-layout">
- <description>Standard Avalonia application window with menu, toolbar, status bar, and content area</description>
- <template>
- <DockPanel name="mainContainer">
- <slot name="menu-bar" dock="Top" default="true">
- <MenuBar name="mainMenu">
- <slot name="menu-items" />
- </MenuBar>
- </slot>
-
- <slot name="toolbar" dock="Top" default="true">
- <AvaloniaToolbar name="mainToolbar">
- <slot name="toolbar-items" />
- </AvaloniaToolbar>
- </slot>
-
- <slot name="status-bar" dock="Bottom" default="true">
- <AvaloniaStatusBar name="mainStatusBar">
- <slot name="status-items" />
- </AvaloniaStatusBar>
- </slot>
-
- <slot name="main-content" required="true" />
- </DockPanel>
- </template>
- </wireframe>
-
- <wireframe name="AvaloniaDialog" type="base-layout">
- <description>Standard Avalonia dialog layout with content and button areas</description>
- <template>
- <Border name="dialogBorder" background="White" border-brush="Gray" border-thickness="1" corner-radius="4">
- <DockPanel name="dialogContainer" margin="10">
- <slot name="dialog-buttons" dock="Bottom" default="true">
- <AvaloniaButtonBar name="dialogButtons" alignment="Right" margin="0,10,0,0">
- <AvaloniaButton name="okButton" text="OK" is-default="true" />
- <AvaloniaButton name="cancelButton" text="Cancel" is-cancel="true" />
- </AvaloniaButtonBar>
- </slot>
-
- <slot name="dialog-content" required="true" />
- </DockPanel>
- </Border>
- </template>
- </wireframe>
-
- </patterns>
|