コード例 #1
0
 protected BindableElement(IVisualBootstrapper visualBootstrapper)
     : base(visualBootstrapper)
 {
     _lockBindings = new Object();
     _openBindings = new List <IDataBinding>();
     _bindings     = new List <IDataBinding>();
 }
コード例 #2
0
        // ReSharper disable once UnusedMember.Global
        public RepeaterPanel(IVisualBootstrapper visualBootstrapper,
                             ISequentialRenderer?renderer,
                             IVisualCollection?children)
            : base(visualBootstrapper)
        {
            switch (children)
            {
            case VisualCollection good:
                _controls = good;
                break;

            case { } someCollection:
                _controls = new VisualCollection(someCollection);
                break;

            default:
                _controls = new VisualCollection();
                break;
            }

            _controlsLock       = new Object();
            _renderer           = EnsureRenderer(renderer);
            _visualsByVm        = new Dictionary <Object, IVisualElement>();
            _itemsControlHelper = new ItemsControlHelper(AddNewItems, RemoveItems, ClearItems,
                                                         null, null);
        }
コード例 #3
0
        private DesignViewWindow(ViewDeserializer serializer,
                                 FileInfo fileDesigning,
                                 IStyleContext styleContext,
                                 IVisualBootstrapper templateResolver)
            : base(new GdiHostedElement(new Das.Views.Panels.View(templateResolver), styleContext))
        {
            trackBar1            = new TrackBar();
            _viewBuilderProvider = new ViewBuilderProvider(serializer);

            RenderMargin = new Thickness(0, 0, 300, 0);

            _serializer    = serializer;
            _fileDesigning = fileDesigning ?? throw new ArgumentException();
            var dir = _fileDesigning.DirectoryName ?? throw new ArgumentException();

            _fileWatcher = new FileSystemWatcher(dir)
            {
                Filter = fileDesigning.Name
            };
            _fileWatcher.Changed            += OnWatchedFileChanged;
            _fileWatcher.EnableRaisingEvents = true;

            Load += OnFormLoaded;

            InitializeComponent();

            trackBar1.BringToFront();
        }
コード例 #4
0
        protected BasePanel(IVisualBootstrapper visualBootstrapper,
                            IVisualCollection children)

            : base(visualBootstrapper)
        {
            _children = children is VisualCollection good ? good : new VisualCollection(children);
        }
コード例 #5
0
        public IAppliedStyle?BuildAppliedStyle(IStyleSheet style,
                                               IVisualElement visual,
                                               IVisualLineage visualLineage,
                                               IVisualBootstrapper visualBootstrapper)
        {
            var appliedStyle = new AppliedStyle(style);

            foreach (var rule in style.Rules)
            {
                var appliedRule = BuildAppliedRule(appliedStyle, rule, visual, visualLineage,
                                                   visualBootstrapper);
                if (appliedRule == null)
                {
                    continue;
                }

                appliedStyle.AddAppliedRule(appliedRule);
            }

            appliedStyle.EnsureInverseForFilteredSelectors();

            TrySetVisualStyle(visual, appliedStyle);

            if (!appliedStyle.HasAppliedRules)
            {
                return(default);
コード例 #6
0
 public RepeaterGrid(IVisualBootstrapper templateResolver)
     : base(templateResolver)
 {
     _controls     = new Dictionary <Int32, List <IVisualElement> >();
     _sizes        = new Dictionary <Int32, List <ISize> >();
     _columnWidths = new Dictionary <Int32, Double>();
 }
コード例 #7
0
 private UniformStackPanel(//IDataBinding<T>? binding,
     IVisualBootstrapper visualBootstrapper,
     IVisualCollection children)
 //: base(binding, visualBootstrapper, children, new SequentialUniformRenderer(children))
     : base(visualBootstrapper, children, new SequentialUniformRenderer(children))
 {
 }
コード例 #8
0
        //public UniformStackPanel(IVisualBootstrapper templateResolver)
        //    : this(null, templateResolver)
        //{
        //}

        public UniformStackPanel(//IDataBinding<T>? binding,
            IVisualBootstrapper visualBootstrapper)
        //: this(binding, visualBootstrapper, new VisualCollection())
            : this(visualBootstrapper, new VisualCollection())

        {
        }
コード例 #9
0
        public TestTabControl(IVisualBootstrapper templateResolver)

            : base(templateResolver)
        {
            _tabControl = new TabControl <EmployeeViewModel>(templateResolver);
            Content     = _tabControl;
        }
コード例 #10
0
        public HorizontalRule(IVisualBootstrapper visualBootstrapper)
            : base(visualBootstrapper)
        {
            HorizontalAlignment = HorizontalAlignments.Stretch;

            InvalidateMeasure();
        }
コード例 #11
0
        public PseudoVisualAssignment(IVisualElement toVisual,
                                      ContentAppendType appendType,
                                      IStyleRule rule,
                                      IVisualBootstrapper visualBootstrapper,
                                      IVisualLineage visualLineage,
                                      BuildAssignments assignmentsBuilder)
        {
            Visual      = toVisual;
            _appendType = appendType;
            ILabel applyTo;

            switch (appendType)
            {
            case ContentAppendType.Before:
                if (!(toVisual.BeforeLabel is { } beforeLabel))
                {
                    applyTo = visualBootstrapper.Instantiate <Label>();
                    toVisual.BeforeLabel = applyTo;
                }
                else
                {
                    applyTo = beforeLabel;
                }

                break;
コード例 #12
0
        protected VisualElement(IVisualBootstrapper visualBootstrapper)
        {
            _visualBootstrapper = visualBootstrapper;

            _measuredSize = ValueSize.Empty;
            Id            = Interlocked.Increment(ref _currentId);
        }
コード例 #13
0
 public MultiDataTemplate(IVisualBootstrapper visualBootstrapper,
                          Type?dataType,
                          IEnumerable <IVisualElement> visualElements)
 {
     _visualBootstrapper = visualBootstrapper;
     _visualElements     = new List <IVisualElement>(visualElements);
     DataType            = dataType;
 }
コード例 #14
0
 public DataTemplate(IVisualBootstrapper visualBootstrapper,
                     Type?dataType,
                     IVisualElement content)
 {
     _visualBootstrapper = visualBootstrapper;
     DataType            = dataType;
     Content             = content;
 }
コード例 #15
0
 public DesignViewWindow(ViewDeserializer serializer,
                         FileInfo fileDesigning,
                         IVisualBootstrapper templateResolver)
     : this(serializer, fileDesigning, new BaseStyleContext(DefaultStyle.Instance,
                                                            new DefaultColorPalette()),
            templateResolver)
     //: base(new GdiHostedElement(new BaseStyleContext(new DefaultStyle())))
 {
 }
コード例 #16
0
        public ScrollPanel(IVisualBootstrapper visualBootstrapper)
            : base(visualBootstrapper)
        {
            _lastAvailable = ValueSize.Empty;
            _lastNeeded    = ValueSize.Empty;

            _flingHandler = new FlingHandler(this);

            _isClipsContent = true;
        }
コード例 #17
0
        public StyledVisualWorker(IStyleSheet styleSheet,
                                  IPropertyProvider propertyProvider,
                                  IVisualBootstrapper visualBootstrapper)
        {
            _propertyProvider   = propertyProvider;
            _visualBootstrapper = visualBootstrapper;
            _rules = new List <IStyleRule>(styleSheet.Rules);

            //_declarationWorker = new DeclarationWorker(renderPositions, visualBootstrapper);
        }
コード例 #18
0
 public StyledVisualBuilder(IVisualBootstrapper visualBootstrapper,
                            IVisualStyleProvider styleProvider,
                            IPropertyProvider propertyProvider,
                            IAppliedStyleBuilder appliedStyleBuilder)
 {
     _visualBootstrapper  = visualBootstrapper;
     _styleProvider       = styleProvider;
     _propertyProvider    = propertyProvider;
     _appliedStyleBuilder = appliedStyleBuilder;
 }
コード例 #19
0
        //protected BaseSequentialPanel(IDataBinding<T>? binding,
        //                              IVisualBootstrapper visualBootstrapper)
        //    : this(binding, visualBootstrapper, new VisualCollection())
        //{
        //}

        //protected BaseSequentialPanel(IDataBinding<T>? binding,
        //                              IVisualBootstrapper visualBootstrapper,
        //                              IVisualCollection children,
        //                              ISequentialRenderer? renderer = null)
        //    : base(binding, visualBootstrapper, children)
        //{
        //    _renderer = EnsureRenderer(renderer);

        //    VerticalAlignment = VerticalAlignments.Default;
        //    HorizontalAlignment = HorizontalAlignments.Default;
        //}

        protected BaseSequentialPanel(IVisualBootstrapper templateResolver,
                                      IVisualCollection children,
                                      ISequentialRenderer?renderer = null)
        //: this(null, templateResolver, children, renderer)
            : base(templateResolver, children)
        {
            _renderer = EnsureRenderer(renderer);

            VerticalAlignment   = VerticalAlignments.Default;
            HorizontalAlignment = HorizontalAlignments.Default;
        }
コード例 #20
0
 public GdiRenderKit(IViewPerspective viewPerspective,
                     IWindowProvider <IVisualHost> windowProvider,
                     IResolver resolver,
                     IThemeProvider styleContext,
                     IVisualBootstrapper visualBootstrapper,
                     IViewInflater viewInflater,
                     IImageProvider imageProvider)
     : base(resolver, visualBootstrapper, viewInflater,
            new Dictionary <IVisualElement, ValueCube>(), imageProvider)
 {
     _windowProvider = windowProvider;
     Init(windowProvider, styleContext, viewPerspective, _renderPositions,
          ref _imageProvider !, ref _measureContext !, ref _renderContext !);
 }
コード例 #21
0
        public DefaultTabHeaderPanel(ITabControl tabControl,
                                     IVisualBootstrapper visualBootstrapper) :
            base(visualBootstrapper)
        {
            _indicatorRect = new RenderRectangle();
            _itemsControl  = tabControl;
            _tabsUsed      = Size.Empty;
            _indicatord    = Size.Empty;

            _indicator = new HorizontalRule(visualBootstrapper)
            {
                HorizontalAlignment = HorizontalAlignments.Left,
                Background          = visualBootstrapper.ColorPalette.Secondary
            };
            MarginProperty.AddTransition(_indicator, new ThicknessTransition(_indicator,
                                                                             MarginProperty, TimeSpan.FromSeconds(0.3), TimeSpan.Zero, TransitionFunctionType.Ease));
            WidthProperty.AddTransition(_indicator, new QuantifiedDoubleTransition(_indicator,
                                                                                   WidthProperty, TimeSpan.FromSeconds(0.3), TimeSpan.Zero, TransitionFunctionType.Ease));

            _separator = new HorizontalRule(visualBootstrapper);

            Background = visualBootstrapper.ColorPalette.Background;

            var stackPanel = new UniformStackPanel(visualBootstrapper)
            {
                Orientation = Orientations.Horizontal
            };

            var sourcePropertyAccessor = visualBootstrapper.GetPropertyAccessor(
                tabControl.GetType(), nameof(tabControl.TabItems));

            var spBinding = new OneWayCollectionBinding(tabControl, nameof(tabControl.TabItems),
                                                        stackPanel, nameof(Children), null, sourcePropertyAccessor);

            stackPanel.AddBinding(spBinding);

            _scrollPanel = new ScrollPanel(visualBootstrapper)
            {
                Content               = stackPanel,
                ScrollMode            = ScrollMode.Horizontal,
                IsScrollWithMouseDrag = true,
                VerticalAlignment     = VerticalAlignments.Top
            };

            VerticalAlignment = VerticalAlignments.Top;

            AddChildren(_scrollPanel, _indicator, _separator);

            tabControl.PropertyChanged += OnTabPropertyChanged;
        }
コード例 #22
0
        public PieChart(IVisualBootstrapper templateResolver)
            : base(templateResolver)
        {
            _legendLock = new Object();

            _templateResolver = templateResolver;
            _desiredSize      = new ValueSize(1, 1);
            _defaultedColors  = new Dictionary <TKey, IBrush>();
            _random           = new Random();
            _outline          = new Pen(Color.DarkGray, 1);
            _legendOutline    = new Pen(new Color(203, 212, 225), 1);
            _legendItems      = new List <PieLegendItem>();
            _legendItemSizes  = new List <ISize>();
            _legendBackground = new SolidColorBrush(Color.White);
        }
コード例 #23
0
        public UniformRepeaterPanel(IVisualBootstrapper visualBootstrapper)
            : base(visualBootstrapper)
        {
            _rows    = new List <VisualCollection>();
            _columns = new List <VisualCollection>();

            _dataContextRows      = new Dictionary <Object, VisualCollection>();
            _columnRenderers      = new Dictionary <IVisualElement, ColumnRenderer>();
            _columnIndexRenderers = new Dictionary <Int32, ColumnRenderer>();
            _rendererColumns      = new Dictionary <ColumnRenderer, Int32>();
            _columnVisuals        = new Dictionary <IVisualElement, VisualCollection>();
            _columnWidths         = new Dictionary <Int32, Double>();
            _rowHeights           = new Dictionary <Int32, Double>();

            _cellLock = new Object();
            _children.CollectionChanged += OnVisualsCollectionChanged;
            AddNewColumns(Children.GetAllChildren(), false);
        }
コード例 #24
0
 public ViewInflater(IVisualBootstrapper visualBootstrapper,
                     IStringPrimitiveScanner xmlAttributeParser,
                     ITypeInferrer typeInferrer,
                     IBindingBuilder bindingBuilder,
                     IValueConverterProvider converterProvider,
                     IVisualTypeResolver visualTypeResolver,
                     IPropertyProvider typeManipulator,
                     IAppliedStyleBuilder appliedStyleBuilder)
 {
     _visualBootstrapper    = visualBootstrapper;
     _typeInferrer          = typeInferrer;
     _bindingBuilder        = bindingBuilder;
     _converterProvider     = converterProvider;
     _visualTypeResolver    = visualTypeResolver;
     _typeManipulator       = typeManipulator;
     _appliedStyleBuilder   = appliedStyleBuilder;
     _attributeValueScanner = xmlAttributeParser;
 }
コード例 #25
0
        public TabControl(IVisualBootstrapper visualBootstrapper)
            : base(visualBootstrapper)
        {
            _headerUses  = ValueSize.Empty;
            _contentUses = ValueSize.Empty;

            _updateLock         = new Object();
            _lockContentVisuals = new Object();
            _tabContentVisuals  = new Dictionary <Object, IVisualElement>();

            TabItems = new AsyncObservableCollection2 <IVisualElement>();
            TabItems.CollectionChanged += OnTabItemsChanged;

            HeaderTemplate       = new DefaultTabHeaderTemplate(_visualBootstrapper, this);
            _headerTemplate      = HeaderTemplate;
            _defaultItemTemplate = new DefaultTabItemTemplate(visualBootstrapper); //, this);
            _itemTemplate        = _defaultItemTemplate;
            _contentTemplate     = new DefaultContentTemplate(visualBootstrapper);
        }
コード例 #26
0
 public IEnumerable <IStyleValueAssignment> BuildStyleValueAssignments(IVisualElement visual,
                                                                       IVisualLineage visualLineage,
                                                                       IStyleRule rule,
                                                                       IVisualBootstrapper visualBootstrapper)
 {
     if (rule.Selector.TryGetContentAppendType(out var contentAppend))
     {
         yield return(new PseudoVisualAssignment(visual, contentAppend,
                                                 rule, visualBootstrapper, visualLineage, BuildStyleValueAssignments));
     }
     else
     {
         foreach (var assignment in BuildStyleValueAssignments(visual, visualLineage, rule.Selector,
                                                               rule.Declarations))
         {
             yield return(assignment);
         }
     }
 }
コード例 #27
0
        public TestView(IVisualBootstrapper visualBootstrapper,
                        IImageProvider imageProvider)
            : base(visualBootstrapper)
        {
            _imageProvider = imageProvider;


            var lblPlayersCount = new Label(visualBootstrapper);

            lblPlayersCount.Text = "I am a gut programming guy";


            var pbSvg = new PictureFrame(visualBootstrapper)
            {
                VerticalAlignment   = VerticalAlignments.Center,
                HorizontalAlignment = HorizontalAlignments.Center
            };
            var svg = GetEmbeddedImage("XamarinAndroidTest.Resources.cog.svg");

            //svg.Stroke = Color.Red;
            //svg.Fill = SolidColorBrush.Green;
            pbSvg.Image = svg;
            Content     = pbSvg;
        }
コード例 #28
0
 public CheckBox(IVisualBootstrapper templateResolver)
     : base(templateResolver)
 {
 }
コード例 #29
0
 protected BaseSurrogatedVisual(IVisualBootstrapper visualBootstrapper)
     : base(visualBootstrapper)
     //: base(NullVisualBootStrapper.Instance)
 {
 }
コード例 #30
0
 protected ImageViewBase(IVisualBootstrapper visualBootstrapper)
     : base(visualBootstrapper)
 {
 }