我试图创建一个方形图(X轴宽度与Y轴高度相同)。
我无法找到有关此内容的任何文档,而且我所看到的所有可能无法访问的属性都无法访问。
我试过了:
<oxy:PlotView Model="{Binding Model}" Width="500" Height="500"/>
这显然不起作用,因为这会设置整个区域(而不是图形特定部分)。
答案 0 :(得分:2)
我通过挂钩<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.test.MainActivity"
android:orientation="vertical">
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="100dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
/>
<TextView
android:id="@+id/subtitiles"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/videoView"
app:layout_constraintLeft_toLeftOf="parent"
android:gravity="center"
android:text="The problem with this pond is that there are too many toads"
android:textSize="25sp"
android:background="@android:color/white"
/>
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/subtitiles"
app:layout_constraintLeft_toLeftOf="parent"
android:gravity="center"
android:text="Toad"
android:textSize="25sp"
android:background="@android:color/white"
/>
上的LayoutUpdated
事件并从PlotView
宽度/高度差异更新PlotView.Width
来解决这个问题。
<强> XAML:强>
PlotArea
代码背后:
<Window x:Class="Temp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:oxy="http://oxyplot.org/wpf"
Title="MainWindow" Width="500" Height="500">
<Grid>
<oxy:PlotView Model="{Binding PlotModel}" x:Name="PlotView"/>
</Grid>
</Window>
答案 1 :(得分:0)
假设您不希望它可以调整大小,那么如果您将其包含在Border
中且Height
等于Width
加上高度标题部分。例如:
XAML:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:oxy="http://oxyplot.org/wpf"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Border Width="200" Height="224">
<oxy:PlotView x:Name="plot" Model="{Binding Path=PlotModel}"/>
</Border>
</Grid>
</Window>
Model对象的代码隐藏:
using OxyPlot;
using OxyPlot.Series;
using System.Windows;
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public PlotModel Model
{
get; set;
}
public MainWindow()
{
DataContext = this;
Model = new PlotModel
{
Title = "Test",
TitlePadding = 0,
TitleFontSize = 24
};
LineSeries line = new LineSeries();
line.Points.Add(new DataPoint(0, 0));
line.Points.Add(new DataPoint(1, 1));
line.Points.Add(new DataPoint(2, 2));
Model.Series.Add(line);
}
}
这就是它的样子:
如果要执行可调整大小的版本,请使用包含窗口的SizeChanged
事件,并重新调整该事件处理程序中Border
容器的大小。
答案 2 :(得分:-1)
如何使用外部元素来定义绘图区域的宽度和高度,例如网格或边框
<Border width="500" height="500">
<oxy:PlotView Model="{Binding Model}" />
</Border>