-(UIImage *)resizeImage:(UIImage *)image { float actualHeight = image.size.height; float actualWidth ) { //adjust height according to maxWidth imgRatio = maxWidth / actualWidth; actualHeight = imgRatio * actualHeight; actualWidth = maxWidth; } else { actualHeight = maxHeight; actualWidth = maxWidth; } } CGRect rect = CGRectMake(0.0, 0.0, actualWidth, actualHeight); UIGraphicsBeginImageContext
FrameworkElement Extensions 为 FrameworkElement 提供了一种简单的绑定实际尺寸的方式,扩展利用 EnableActualSizeBinding 来指定是否允许实时绑定实际尺寸中的 ActualWidth 获取到的 ActualHeight 和 ActualWidrh 一直都是变为 False 时最后一个值,不管尺寸怎么改变都不会被更新和监听; 而通过扩展设置的绑定,和直接设置 ActualHeight 和 ActualWidth = baseElement.ActualWidth) { SetActualWidth(baseElement, baseElement.ActualWidth); } } 代码简单分析如上,大家在实际项目中可以对这个类进行扩展,比如把 Opacity,Color 等也作为可以实时绑定的值,实现方式和 ActualHeight ActualWidth 很类似,大家可以自行扩展 调用示例 我们创建了三个 Rectangle,第一个是绑定目标,第二和第三个去绑定第一个的实际尺寸;可以看到因为第二个红色矩形使用 ActualHeight 和 ActualWidth 直接进行绑定,所以并没有绑定到正确的值
nameElement.style.scale = String(); return; } const boundingBox = nameElement.getBoundingClientRect(); const actualWidth = boundingBox.width; const scale = 84 / actualWidth; console.log({ [`${nameElement.textContent}` ]: actualWidth, scale }); if (scale >= 1) { return; } nameElement.style.scale = String(scale
lst[i]; var nxtChild = lst[i + 1]; var plWidth = WpKeyWords.ActualWidth 算出多余的空白宽度 var surplusWidth = plWidth - childPoint.X - child.Margin.Right - child.ActualWidth foreach (var b in tempLst) { b.Width = b.ActualWidth
this.sb.Stop(); 7 double sysWidth = System.Windows.Application.Current.Host.Content.ActualWidth ;//屏幕宽度 8 if (sysWidth <= this.SongName.ActualWidth) 9 { 10 animation.From = sysWidth; 11 animation.To = -this.SongName.ActualWidth - (sysWidth - {//canvas居中 16 this.SongName.SetValue(Canvas.LeftProperty, 180-this.SongName.ActualWidth
StreamGeometry streamGeometry = new StreamGeometry(); var point0 = new Point(this.ActualWidth /3,0); var point1 = new Point(this.ActualWidth / 3*2, 0); var point2 = new Point (this.ActualWidth / 3*2, this.ActualHeight/3*2); var point3 = new Point(this.ActualWidth, this.ActualHeight/3*2); var point4 = new Point(this.ActualWidth / 2, this.ActualHeight); var point5 = new Point(0, this.ActualHeight/3*2); var point6 = new Point(this.ActualWidth
var left = Canvas.GetLeft(this); var top = Canvas.GetTop(this); if (left < -ActualWidth ) return true; if (left > width + ActualWidth) return true int i = 0; i < 25; i++) { var left = random.NextDouble() * ContentCanvas.ActualWidth bubblecontrol.UpdatePosition(currentTransform); if (bubblecontrol.IsOutOfBounds(ActualWidth private void AddNewbubblecontrol() { var left = random.NextDouble() * ContentCanvas.ActualWidth
object sender, SizeChangedEventArgs e) { OvservedWidth = (sender as FrameworkElement).ActualWidth <Canvas > <ItemsControl x:Name="root" Grid.Row="1" Width="{Binding Path=<em>ActualWidth</em> <MultiBinding.Bindings> <Binding ElementName="ContentBorder" Path="<em>ActualWidth</em> " /> <Binding ElementName="ContentItemsControl" Path="<em>ActualWidth</em>" /> " /> <Binding ElementName="ContentItemsControl" Path="<em>ActualWidth</em>" />
FontSize = 40 }); Canvas.SetLeft(canvas.Children[canvas.Children.Count - 1], rd.Next(0, (int)canvas.ActualWidth 10000; i++) { Point pt = new Point((double)rd.Next(0, (int)win.ActualWidth return bitmapImage; } } 调用gdi+绘制,10000个1-2s,10w个3-4s _bitmap = new System.Drawing.Bitmap((int)ActualWidth 100000; i++) { System.Windows.Point pt = new System.Windows.Point((double)rd.Next(0, (int)ActualWidth
PointerPoint point = e.GetCurrentPoint(btn); 这样point.Position.X就是移动的左边 我们可以通过x += point.Position.X - btn.ActualWidth / 2.0; 这是因为btn.ActualWidth / 2.0不用的话会是控件的左上角。 double y = (double)btn.GetValue(Canvas.TopProperty); x += point.Position.X - btn.ActualWidth double y = (double)btn.GetValue(Canvas.TopProperty); x += point.Position.X - btn.ActualWidth
{ Content stage = App.Current.Host.Content; if (position.x > stage.ActualWidth ) { position.x = stage.ActualWidth; velocity.x *= -1; { Content stage = App.Current.Host.Content; if (position.x > stage.ActualWidth = 0; } if (position.x < 0) { position.x = stage.ActualWidth
screen.Bounds.Left / dpiXRatio + (screen.Bounds.Width / dpiXRatio - subWindow.ActualWidth 2; } else { //窗口居中显示 subWindow.Left = parentWindow.Left + (parentWindow.ActualWidth - subWindow.ActualWidth) / 2; subWindow.Top = parentWindow.Top + (parentWindow.ActualHeight screen.Bounds.Left / dpiXRatio + (screen.Bounds.Width / dpiXRatio - subWindow.ActualWidth
{ case Direction.Left: figure.StartPoint = new Point(ActualWidth , 0); var segment = new LineSegment { Point = new Point(ActualWidth, ActualHeight figure.StartPoint = new Point(0, ActualHeight); segment = new LineSegment { Point = new Point(ActualWidth figure.StartPoint = new Point(0, 0); segment = new LineSegment { Point = new Point(ActualWidth figure.StartPoint = new Point(0, 0); segment = new LineSegment { Point = new Point(ActualWidth
同时无法获得 ActualHeight 和 ActualWidth 的值。 在 Loaded 的时候,可以获得属性的值,而且可以获得 ActualHeight 和 ActualWidth 的值。
topLeft = target.PointToScreen(new Point()); var bottomRight = target.PointToScreen(new Point(target.ActualWidth visual.PointToScreen(new Point(0, 0))); pixelBoundsToScreen.Union(visual.PointToScreen(new Point(visual.ActualWidth (0, visual.ActualHeight))); pixelBoundsToScreen.Union(visual.PointToScreen(new Point(visual.ActualWidth visual.PointToScreen(new Point(0, 0))); pixelBoundsToScreen.Union(visual.PointToScreen(new Point(visual.ActualWidth (0, visual.ActualHeight))); pixelBoundsToScreen.Union(visual.PointToScreen(new Point(visual.ActualWidth
drawingGroup.Open()) { drawingContext.DrawRectangle(Brushes.White, null, new Rect(0, 0, ActualWidth 添加矩形需要设置矩形的起点,以及动画的终点,如此界面才会比较复杂 var startPoint = new Point(Random.Shared.Next((int) (ActualWidth (ActualHeight - size.Height))); var endPoint = new Point(Random.Shared.Next((int) (ActualWidth 使用随机数生成矩形的起点和终点,不要超过画布的大小,如此将不会导致画布缩放 var startPoint = new Point(Random.Shared.Next((int) (ActualWidth (ActualHeight - size.Height))); var endPoint = new Point(Random.Shared.Next((int) (ActualWidth
) return; _canvas.Children.Clear(); var pieWidth = _canvas.ActualWidth _canvas.ActualHeight : _canvas.ActualWidth; var pieHeight = _canvas.ActualWidth > _canvas.ActualHeight _canvas.ActualHeight : _canvas.ActualWidth; centenrX = pieWidth / 2; centenrY = pieHeight / 2; radius = this.ActualWidth > this.ActualHeight ? this.ActualHeight / 2 : this.ActualWidth / 2; double angle = 0; double prevAngle
这个部分应该是指擦除 RectangleGeometry rg1 = new RectangleGeometry(); rg1.Rect = new Rect(point.X - 5, point.Y - 5, fe.ActualWidth Path> 显示内容的部分是一个Textblock,当时遇到了一个问题,就是换行问题,Textblock必须要有Width,才会换行,但是由于最外层是Viewbox,所以,尝试过获取UC的Width或者ActualWidth RectangleGeometry rg1 = new RectangleGeometry(); rg1.Rect = new Rect(point.X - 5, point.Y - 5, fe.ActualWidth borGeometry; HintUC hit = new HintUC(xh.ToString(), con, vis); Canvas.SetLeft(hit, point.X + fe.ActualWidth
OuterStackPanel" Path="MaxWidth"/> <Binding ElementName="SSIDTextBlock" Path="<em>ActualWidth</em> "/> <Binding ElementName="SSIDContentTextBlock" Path="<em>ActualWidth</em>"/> <Binding ElementName="SpaceTextBlock" Path="<em>ActualWidth</em>"/> <Binding ElementName ="PasswordTextBlock" Path="<em>ActualWidth</em>"/> </MultiBinding> </TextBlock.MaxWidth
Source = _bitmap }; session.DrawImage(blur, new Rect(0, 0, sender.ActualWidth Source = _bitmap }; session.DrawImage(blur, new Rect(0, 0, sender.ActualWidth ManipulationStartedRoutedEventArgs e) { // 重新设置 _x _x = (float) this.ImagePanel2.ActualWidth += (float) e.Delta.Translation.X; //如果当前的x超过了,或者已经最小 if (_x > ImagePanel2.ActualWidth Source = _bitmap }; session.DrawImage(blur, new Rect(0, 0, sender.ActualWidth